Exoplayer与MediaPlayer
与Android内置的MediaPlayer相比,ExoPlayer具有许多优点:
- 支持通过HTTP(DASH)和SmoothStreaming进行动态自适应流,这两种都不受MediaPlayer的支持。还支持许多其他格式
- 能够自定义和扩展播放器,以适应各种不同需求。 ExoPlayer专门设计了这一点,大部分组件都可以自己替换
Exoplayer 与Ijkplayer
优点:
-
支持通过HTTP(DASH)和SmoothStreaming进行动态自适应流
-
架构上支持应用层面自定义Extractor 解析流媒体(Mp4, FLV, HLS等) ,不需要单独在底层集成流媒体解析
-
支持应用层级缓存配置
-
支持同时设置多个播放地址
-
Exoplayer自动支持预加载
缺点:
-
视频只支持硬解,受限于硬件设备容易导致解码不支持, 导致无法播放 (Exoplayer音频可以实现软解)
-
数据流的请求和内存缓存分配在Java层级实现,受限于虚拟机机制,内存效率不高,容易抖动
-
Extractor在Java层级实现,流媒体解析效率不高
-
架构复杂,可读性较差,学习成本高,开发者如果想实现自定义功能成本较高
-
只支持Android设备,无法跨设备支持
总结
-
性能Exoplayer 相对于Ijkplayer 总体性能偏低,对低端设备不友好。
-
业务接口比较完善,适合播放开发人手不足,对播放极端播放性能要求不高的团队
本文比较了Exoplayer与Android内置MediaPlayer,强调了ExoPlayer的动态自适应流支持、自定义性和应用层面的灵活性,但其硬解依赖、Java层级限制和复杂架构使得在性能上不如Ijkplayer,适合对播放性能要求不高的团队。
830

被折叠的 条评论
为什么被折叠?



