android - 如何创建自定义媒体播放器以在 Android 中播放自定义编解码器?

标签 android video media-player codec mediaplayerservices

这里是 n00b(第一个 Android 项目)。我获得了一个与 Android 固件构建集成的自定义视频编解码器。它是一个 .so 文件,其中包含一个继承自 MediaPlayerInterface 的类,以及一个自定义 MediaPlayerService 实现,用于从相应文件类型的 create() 工厂函数返回自定义编解码器类的实例。

我想将此编解码器用作视频播放器应用程序的一部分,该应用程序可以安装在固件中不包含编解码器的手机上,方法是将 .so 文件放在我的 libs/armeabi 文件夹中并通过 JNI 调用它。

来自 this question 的答案我发现在 MediaPlayer 框架内不可能做到这一点,我必须从头开始创建一个新的媒体播放器。首先,我用 Java 实现了一个 UI,并将其设置为使用自定义 View (而不是 VideoView),它扩展了 SurfaceView 并使用 MediaPlayer 类的实例来播放视频。然后我用自定义媒体播放器 Java 类替换了这个 MediaPlayer 实例。我已经设置了 JNI 接口(interface),模仿 android_media_MediaPlayer.cpp 的方式,并在 JNI 代码中调用 MediaPlayer C++ 类。现在我需要用自定义 C++ 媒体播放器类替换 that

这是我开始遇到问题的地方。实现自定义播放器的推荐方法是什么?有吗?除了通过源代码拖网之外,是否有任何这些东西的在线文档?我可以使用多少框架以及我必须自己重新实现多少?我是否必须实现自己的 MediaPlayerService 等效项?

非常感谢任何提示。

最佳答案

你可以查看Android的源代码来了解如何 Android 已经用 Java 实现了 MediaPlayer 接口(interface)。你可以 遵循类似的路线。

MediaPlayer Class Reference

关于android - 如何创建自定义媒体播放器以在 Android 中播放自定义编解码器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5578569/

相关文章:

java - 从 AsyncTask postExecute 返回回调响应 : Nullpointerexception

java - 在 Button 之上添加 TextView?

Android:使用正则表达式按标签过滤 Logcat

iPhone: Video API: Live video streaming 修改

java - 为什么我的视频时间线不起作用?

android - 字符串中的字符不替换

ios - 在 iOS 上将视频保存在 applicationStorageDirectory 中

video - 如何在嵌入式Youtube播放列表上显示视频列表?

android - 将音乐添加到 Android 游戏时防止跳过或滞后

Android 停止计数器并销毁媒体播放器