Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ExoPlayer使用自定义的MediaCodecSelector_Android_Exoplayer - Fatal编程技术网

Android ExoPlayer使用自定义的MediaCodecSelector

Android ExoPlayer使用自定义的MediaCodecSelector,android,exoplayer,Android,Exoplayer,在我的目标设备上,我需要强制ExoPlayer使用特定的编解码器,在测试期间,如果我修改MediaCodeSelector默认实现的getDecoderInfo()函数,一切都会正常工作 但是对于真正的产品,我不想修改ExoPlayer的源代码。我看到一些帖子说你可以实现你自己的MediaCodecSelector,但我没有弄清楚如何实现 如果我是SimpleExoPlayer的子类,因为MediaCodeSelector.DEFAULT的使用是硬编码到SimpleExoPlayer的Build

在我的目标设备上,我需要强制ExoPlayer使用特定的编解码器,在测试期间,如果我修改MediaCodeSelector默认实现的getDecoderInfo()函数,一切都会正常工作

但是对于真正的产品,我不想修改ExoPlayer的源代码。我看到一些帖子说你可以实现你自己的MediaCodecSelector,但我没有弄清楚如何实现

如果我是SimpleExoPlayer的子类,因为MediaCodeSelector.DEFAULT的使用是硬编码到SimpleExoPlayer的BuildVideoRenders()中的,所以我想重写BuildVideoRenders(),但是我没有访问私有属性的权限,即使我有,最终也会得到重复的代码

或者,如果我要实现ExoPlayer,它似乎将依赖于更多的私有类


我想标准的方法不是上述任何一种。

我最终使用了
ExoPlayerFactory
的以下工厂函数:
公共静态ExoPlayer新实例(渲染器[]渲染器,轨迹选择器TrackSelector)
。在这里,我使用自己的
mediacodeselector
创建
渲染器


那么唯一的区别就是如何设置surface view,类型为
MSG\u set\u surface
sendMessage
对我来说很有效。

我认为exoplayer的标准方法是在需要时使用fork。你能解释一下覆盖buildVideoRenders有什么问题吗?如果你能更详细地解释你想要解决的问题,也许会有所帮助。