gpt4 book ai didi

java - Android - 从在 SurfaceView 上播放的 MediaPlayer 获取帧以将它们传递给 native C++ 代码

转载 作者:行者123 更新时间:2023-11-30 04:06:40 35 4
gpt4 key购买 nike

如标题所述,我正在尝试获取 MediaPlayer 帧(在播放时)并将它们传递给我的 C++ native 代码(使用 JNI)。

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

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

所以我的问题是:是否有可能让 MediaPlayer 显示最后一帧,以便将其传递给 C++ 代码?

PS:我必须使用 API 级别 8

谢谢

最佳答案

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

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

http://developer.android.com/reference/android/media/MediaCodec.html

在那之前,你几乎被困住了。您可以尝试通过 NDK 解决方案使用 ffmpeg + JNI。这似乎很难完成,但好消息是,如果你做到了,你的框架将在 C++ 级别被读取。

关于java - Android - 从在 SurfaceView 上播放的 MediaPlayer 获取帧以将它们传递给 native C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808757/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com