【音视频】6.MediaPlayer、ExoPlayer、ijkplayer简单对比

MediaPlayer

Android原生播放器,支持格式较少:支持mp4,3gp,资源文下支持mkv,使用比较简单,但是拓展性比较差。不需要集成第三方库,不占用apk体积。

ijkplayer

哔哩哔哩开源的基于ffplay开发的一款播放器,功能就比较强大了,如果只是使用它进行播放,集成也较为简单,使用也和MediaPlayer差不多,但是要定制化需求,就有一定的门槛高度。支持软硬编解码,支持倍速播放,可以定制化集成需要的功能,集成占用体积也很小。

ExoPlayer(基本来自于官方文档翻译)

谷歌出品,推荐使用的播放器。同RecyclerView一样定制化程度非常高。
优点:

  • 支持动态的自适应流HTTP(DASH) 和 平滑流,任何目前MediaPlayer支持的视频格式(同时它还支持HTTP直播了(HLS),MP4,MP3,WebM,M4A,MPEG-TS 和 AAC).
  • 支持高级的HLS特性,例如正确处理 EXT-X-DISCONTINUITY 标签。
  • 无缝合并、连接和循环媒体的能力。
  • 支持自定义和扩治你的使用场景。ExoPlayer专门为此设计,它允许将许多组件替换为自定义实现,它提供了低等级的媒体API,例如:MediaCodec,AudioTrack,MediaDrm,可以用于建立自定义媒体播放的解决方案。。
  • 以第三方依赖的方式集成,可以随应用升级版本
  • 更少的适配性问题,更少的设备特定的问题和更少的行为变化, 在不同的设备和android的版本。
  • 可以接入ffmpeg

缺点:

  • 相对于MediaPlayer更耗电:但是Android Q以开发audio affload,可以减低功耗。
  • 最低API16
  • 早期版本不支持自动检查需要播放的媒体格式,后续的版本已经支持。
  • TextureView比SurfaceView 耗电增加30%,所以SurfaceView能满足需求,尽量使用SurfaceView。

猜你喜欢

转载自blog.csdn.net/qq_30124547/article/details/90815260