Android 常用视频播放库分析

需求:播放网络直播流的历史回放视频,FLV格式,支持进度拖动、倍速功能。
选用库列表:

  • MediaPlayer(Android 系统库)

  • ExoPlayer(google 出的扩展播放库)

  • pldroid-player:2.1.8

  • Vitamio

  • ijkplayer

使用demo分析

  1. MediaPlayer(Android 系统库)使用简便,功能匹配完全,开发完成后测试发现在部分机型上测试播放失败(NEXUS、华为平板),报底层未知错误,查阅资料FLV格式未在支持格式列表中
  2. ExoPlayer(google 出的扩展播放库)集成简便,通过 playWhenReady 接口控制暂停、播放。但测试过程中发现seekTo接口总是回到起点未知开始播放,查阅资料显示ExoPlayer不支持FLV格式的seek方法
  3. pldroid-player 七牛云直播库,在项目推流中表现正常,但是播放FLV格式视频seek过程中经常crash,弃用
  4. Vitamio 停止维护,集成需引入module,使用so库历史较久,搭配targetSDK23以下可用。较新版本异常问题多,弃用
  5. ijkplayer 用法与系统自带的MediaPlayer使用类似,稳定。但是默认引入的依赖库不支持https,如需支持需要重新编译so库,网上解决方案较多,问题不大。但倍速播放实测区间在0-2倍范围内, 项目中倍速最大4倍。

最后这种方案选择ijkplayer,暂且放弃4倍变速,但release时注意添加混淆规则

#ijkplayer
-keep class tv.danmaku.ijk.media.player.** {*;}
-keep class tv.danmaku.ijk.media.player.IjkMediaPlayer{*;}
-keep class tv.danmaku.ijk.media.player.ffmpeg.FFmpegApi{*;}

你可能感兴趣的:(#,常见技术点)