n00b 这里(第一个 Android 项目)。我获得了一个与 Android 固件版本集成的自定义视频编解码器。它是一个 .so 文件,其中包含一个继承自 MediaPlayerInterface 的类,以及一个自定义 MediaPlayerService 实现,用于从适当的文件类型的 create() 工厂函数返回自定义编解码器类的实例。
我想将此编解码器用作视频播放器应用程序的一部分,该应用程序可以安装在固件中不包含编解码器的手机上,方法是将 .so 文件放在我的 libs/armeabi 文件夹中并通过 JNI 调用它。
从这个问题的答案中,我了解到在 MediaPlayer 框架内不可能做到这一点,我必须从头开始创建一个新的媒体播放器。首先,我用 Java 实现了一个 UI,并将其设置为使用自定义视图(而不是 VideoView),它扩展了 SurfaceView 并使用 MediaPlayer 类的实例来播放视频。然后我用自定义媒体播放器 Java 类替换了这个 MediaPlayer 实例。我已经设置了 JNI 接口,模仿了 android_media_MediaPlayer.cpp 的做法,并在 JNI 代码中调用了 MediaPlayer C++ 类。现在我需要用自定义 C++ 媒体播放器类替换它。
这是我开始遇到问题的地方。实现自定义播放器的推荐方法是什么?有吗?除了浏览源代码之外,是否有任何这些东西的在线文档?我可以使用多少框架,我必须自己重新实现多少?我是否必须实现自己的 MediaPlayerService 等价物?
非常感谢任何提示。