n00b在这里(第一个Android项目)。我得到了一个已经与Android固件版本集成的定制视频编解码器。它是一个包含从MediaPlayerInterface继承的类的.so文件,以及用于从create()工厂函数返回适当文件类型的自定义编解码器类实例的自定义MediaPlayerService实现。如何创建自定义媒体播放器以在Android中播放自定义编解码器?
我想通过将.so文件放入我的libs/armeabi文件夹并通过JNI调用它,将此编解码器用作视频播放器应用程序的一部分,该应用程序可以安装在不包含固件编解码器的手机上。
从我对this question的回答可以看出,在MediaPlayer框架中无法做到这一点,我必须从头开始创建一个新的媒体播放器。首先,我使用Java实现了一个UI,并将其设置为使用自定义视图(而不是VideoView),该视图扩展了SurfaceView并使用MediaPlayer类的一个实例来播放视频。然后,我用一个自定义媒体播放器Java类替换了MediaPlayer的这个实例。我建立了JNI接口,模仿了android_media_MediaPlayer.cpp的方式,并且在JNI代码中调用了MediaPlayer C++类。现在我需要用一个定制的C++媒体播放器类替换,即。
这是我开始遇到问题的地方。实施自定义播放器的建议方法是什么?有一个吗?除了通过源码进行拖网之外,是否还有一些在线文档适用于这些内容?我可以使用多少框架以及需要多少人来重新实现自己?我是否必须实现自己的等效MediaPlayerService?
任何提示非常感谢。
感谢您的回复。在发布最初的问题之前,我通读了MediaPlayer界面的Android源代码。类似的路线似乎不可能。具体而言,内置MediaPlayer使用ACCESS_SURFACE_FLINGER权限,这似乎被拒绝给不内置的应用程序。我希望用户能够下载并安装我的播放器,而不是在手机上预先安装它。 – samgak 2011-07-11 02:36:52
嗨,请分享您的最新发现,了解如何实现android自定义编解码器。 @samgak – HoseinIT 2016-03-09 06:45:23