ijk的那些事(一)编译项目

本文详细指导了如何在Android平台上安装必要的git和yasm,从GitHub克隆ijkplayer源码,初始化编译环境,编译ffmpeg和ijkplayer,以及如何集成到项目中。重点介绍了依赖管理和不同平台so的编译。
摘要由CSDN通过智能技术生成

安装:

一、安装必要软件: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();
            }
        });

打完收工。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值