参考官网:ijkplayer
在window下装了一个Ubuntu系统,使用ndk版本是10e,ijk是0.8.8
由于要支持https,所以编译如下:
整个过程网要流畅,可以翻墙
1,首先要下载和配置sdk和ndk:
用命令打开配置文件:
vi .bash_profile
把下面的配置写到配置里,xxx是具体路径
export ANDROID_SDK=/home/xxx/Android/sdk
export PATH=$ANDROID_SDK/platformtools:$PATH
export PATH=$ANDROID_SDK/tools:$PATH
export ANDROID_NDK=/xxx/Android/android-ndk-r10e
export PATH=$ANDROID_NDK:$PATH
写完以后保存退出后在执行下面命令
source .bash_profile 注意如果在下面编译的过程中说You must define ANDROID_NDK before starting,要是路径不对,要不就是没有执行这个命令
2,安装homebrew, git, yasm
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm
3,拉取源码,网络一定要好
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.8
4,进入config文件夹,选择自动化编译时的一些配置文件,选择module-lite.sh,命令如下:
cd config
rm module.sh
ln -s module-lite.sh module.sh
5,开始编译,网一定要好
从config文件夹出来,在ijkplayer-android文件夹中,进行一系列编译初始化:
cd ..
./init-android.sh
执行完以后在执行
./init-android-openssl.sh
编译openssl和FFmpeg
先清理
cd android/contrib
./compile-openssl.sh clean
./compile-ffmpeg.sh clean
在编译
编译-openssl,现在全版本编译
./compile-openssl.sh all
编译ffmpeg,也是全版本编译
./compile-ffmpeg.sh all
注意,也可以选择版本编译,如果编译armv7a,把all换成armv7a就行了
最后,从contrib 出来到android目录下,编译ijk
cd ..
./compile-ijk.sh all
如此整个流程算是完了 so文件在 ijkplayer-android_build\ijkplayer-android\android\ijkplayer\下各个版本工程libs下
中间遇到的问题:
1,在刚刚开始编译的时候,是ndk15,但是ijk好像还没支持,看网络上说10的版本可以,就换成了10
2,如果ndk路径没问题,还老是出现ndk不能找到,就在系统跟目录执行source .bash_profile
3,只编译出来libijkffmpeg.so,没有libijkplayer.so、libijksdl.so这个两个文件,在 ijkplayer-android_build\ijkplayer-android\android\ijkplayer\各个版本项目下jni目录下的Android.mk文件最后加入一行:include /home/xxx/ijkplayer_/ijkplayer-android/ijkmedia/*.mk 再编译 xxx是具体目录
网友评论