Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-从在SurfaceView上播放的MediaPlayer获取帧,并将其传递给本机C++;代码 正如标题所描述的,我试图获得 MyIpPoovi[/Cuth>Frase](在播放时)并将它们传递给我的C++本地代码(使用 JNI)。_Java_Android_C++_Java Native Interface_Android Mediaplayer - Fatal编程技术网

Java Android-从在SurfaceView上播放的MediaPlayer获取帧,并将其传递给本机C++;代码 正如标题所描述的,我试图获得 MyIpPoovi[/Cuth>Frase](在播放时)并将它们传递给我的C++本地代码(使用 JNI)。

Java Android-从在SurfaceView上播放的MediaPlayer获取帧,并将其传递给本机C++;代码 正如标题所描述的,我试图获得 MyIpPoovi[/Cuth>Frase](在播放时)并将它们传递给我的C++本地代码(使用 JNI)。,java,android,c++,java-native-interface,android-mediaplayer,Java,Android,C++,Java Native Interface,Android Mediaplayer,因此,我使用MediaPlayer和“setDisplay(SurfaceView)”方法在SurfaceView上绘制视频像素 在视频播放过程中,我使用SurfaceView的“getDrawingCache”方法获取最后一个视频帧像素。但我读到它的位图将始终是黑色的 所以我的问题是:是否可以得到最后一个帧,由代码>媒体播放器< /代码>,以传递给C++代码? PS:我必须使用API级别8 感谢您,从Android 4.1开始,他们添加了MediaCodec Api,允许您访问几乎所有内容 在

因此,我使用
MediaPlayer
和“
setDisplay(SurfaceView)
”方法在
SurfaceView
上绘制视频像素

在视频播放过程中,我使用
SurfaceView
的“
getDrawingCache
”方法获取最后一个视频帧像素。但我读到它的位图将始终是黑色的

所以我的问题是:是否可以得到最后一个帧,由代码>媒体播放器< /代码>,以传递给C++代码? PS:我必须使用API级别8


感谢您,从Android 4.1开始,他们添加了MediaCodec Api,允许您访问几乎所有内容

在Android 4.3中,他们增加了从表面获取流的可能性

在那之前,你几乎被卡住了。您可以尝试通过NDK解决方案使用ffmpeg+JNI。
这似乎很难完成,但好消息是,如果你做到了,你的框架已经在C++级别上被读取了。p> 当然不是针对API级别8,而是针对API级别19+,您可以从曲面视图获取曲面,并将其传递给

ImageReader类允许应用程序直接访问渲染到曲面中的图像数据


您可以使用
setOnImageAvailableListener
在ImageReader上设置侦听器。这将获得所有帧,包括最后一帧。

谢谢,但事实上,我必须使用api级别8(我将编辑我的问题)