一.简介
ijkplayer是由bilibili基于ffmpeg开发的一套音视频播放框架。
-
github地址:https://github.com/bilibili/ijkplayer
-
最新提交记录在2018-02,处于不维护状态,相关issue问题比较多
-
ijkplayer仓库介绍参考:https://www.jianshu.com/p/5d1d46aa721d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
二.基本使用
按照官方的gradle引入方式,api用法和Android MediaPlayer完全一致。
播放选项配置参考https://www.jianshu.com/p/5862808a192a
三.音视频格式与编码不支持问题
ijkplayer默认的ffmpeg配置支持的音频格式有限(H264编码格式、3gp、mkv、mpg等一些都播放不了或者有画面无声音),需要自己编译。
四.ijkplayer编译问题
-
我的编译环境:VM + ubuntu14.04LTS + java-8-openjdk-amd64 + android-ndk-r10e
-
编译步骤:官方示例
-
编译过程中的一些问题
1.拉取ffmpeg仓库很慢,低概率很快,只能等待了
2.ndk版本问题:使用官方推荐的 android-ndk-r10e版本
3. 执行
./compile-ffmpeg.sh all
命令后,如果报错:fatal error: linux/perf_event.h: No such file or directory
,将目录切换到 ~/ijkplayer-android/config下,在该文件最后一行添加下面一行,export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf" 4.编译全部平台比较慢,可以armeabi-v7a、arm64等分开编译
-
编译参考博客:https://www.jianshu.com/p/44e52b308434
-
编译出的so预览
默认配置
支持全部格式
github地址:https://github.com/dongpingwang/ijkplayer
五.android源码编译apk的问题
采用源码编译apk的方式好像有点问题:我将ijkplayer-java-0.8.8.aar通过Android.mk引用,将so放在系统/system/lib/ 或者apk lib/arm/目录下,均出现so加载错误,目前仍在解决中