安装:
一、安装必要软件:git,yasm
sudo apt-get install git yasm
二、拉取源码:
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
三、初始化编译环境:
# 进入到ijk目录
cd ijkplayer-android
# 检查一下版本,注意下面版本号,去ijk的github上看
git checkout -B latest k0.8.8
# 初始化环境,或拉取ffmpeg
./init-android.sh
# 编译ffmpeg
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
# 编译ijk,生成so
cd ..
./compile-ijk.sh all
到这里,编译好了,我们就可以直接复制到项目里面用了。上面编译之所以加上all是因为我们不止编译某一个平台下的so,当然如果你要编译某一个平台的so(如arm64),那么把
./compile-ffmpeg.sh all
cd ..
./compile-ijk.sh all
换成
./compile-ffmpeg.sh arm64
cd ..
./compile-ijk.sh arm64
就行了。
使用:
如果你没有什么特殊需求的话,也可以直接添加官方依赖:
compile 'tv.danmaku.ijk.media:ijkplayer-java:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.5.1'
或者你也可以更改部分源码,然后再像上面说的那样编译,最后把各个平台的so加入进来。
不过不管你如何更改,这几个必须是得导入的:
compile 'tv.danmaku.ijk.media:ijkplayer-java:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.5.1'
下面这几个是不同平台的链接库,根据需要可以适当删除:
compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.5.1'
compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.5.1'
下面这个是一个MediaPlayer,因为我们后面可以在settings下设置用不同player来渲染多媒体显示。这就是其中一个吧。
compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.5.1'
最后
我们在activity里面几句代码就可以简单集成CCTV1
了:
mSettings = new Settings(this);
videoView = (IjkVideoView) findViewById(R.id.videoview);
// init player
IjkMediaPlayer.loadLibrariesOnce(null);
IjkMediaPlayer.native_profileBegin("libijkplayer.so");
videoView.setVideoURI(Uri.parse("http://106.36.45.36/live.aishang.ctlcdn.com/00000110240001_1/encoder/1/playlist.m3u8"));
videoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(IMediaPlayer mp) {
videoView.start();
}
});
打完收工。