Android:制作原生视频播放器时应该使用什么?

标签 android c++ video android-ndk ffmpeg

目前我正在研究一个原生视频播放器项目,最初我尝试使用ffmpeg作为解码器并将Byte返回到java,然后我使用View::onDraw和Canvas来显示帧。不幸的是,这个方法的性能不好,所以我想知道除了传递给java之外,是否还有其他方法可以用来显示帧?

此外,除了显示帧之外,如何使用 C/C++ 和 NDK 播放声音?

谢谢。

最佳答案

您可以使用 ffmpeg http://ffmpeg.org和/或 libtheora http://www.theora.org解码视频帧。然后只需使用渲染到纹理通过 OpenGL ES 2 显示结果。引用http://www.gamedev.net/topic/570295-opengl-and-xvidtheoraanything了解详情。

对于音频,您可以使用 OpenAL。这是 Android 端口:http://pielot.org/2010/12/14/openal-on-android

关于Android:制作原生视频播放器时应该使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11207101/

相关文章:

c++ - 使用结构体作为指针定义变量

ios - 以编程方式设置视频铃声

video - 使用ffmpeg连接后如何输出mp4

Android - "wrap_content"不包装内容

android - onAccessibilityEvent(AccessibilityEvent event) 不拦截通知

android - 在我获得 gps/网络位置后,android 删除了该位置的值

c++ - 带有 GLSL 的 OpenGL 中的简单二维矩阵旋转不产生任何输出

android - 将 Eclipse 应用程序和库迁移到 Android Studio

c++ - 双重分派(dispatch)的循环依赖

iOS 9 PHAssetChangeRequest 创建RequestForAssetFromVideoAtFileURL : fails with error code -1