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(我将编辑我的问题)