系统编译环境
Ubuntu14.04 x64
android-ndk-r10e
1 确认机器已经安装过git和yasm,安装命令:
sudo apt-get update
sudo apt-get install git
sudo apt-get install yasm
2 配置环境变量:
ANDROID_SDK={SDK路径}
ANDROID_NDK={SDK路径}
export ANDROID_SDK
export ANDROID_NDK
export PATH=${PATH}:${ANDROID_SDK}:${ANDROID_NDK}
在ubuntu环境下,进入主文件夹,进入目录后按Ctrl+H就可以看到隐藏的文件,你就可以看到.bashrc文件。(这里命名一定要ANDROID_NDK和ANDROID_SDK)
编译ijkplayer
1 直接从git拉取ijkplayer源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
2 检查更新代码
git checkout -B latest k0.8.4
3 初始化,获取ffmpeg的代码拉取到本地等等操作
./init-android.sh
4 编译ffmpeg
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
如果出现下图就便是编译成功
5 编译ijkplayer生成各种版本的so文件
cd ..
./compile-ijk.sh all
导入Android Studio
直接导入/ijkplayer-android/android/ijkplayer
错误总结
- 一直提示You need the NDKr10e or later”
1、这里有可能是ndk环境变量配置出错。
2、使用的ndk版本不能支持编译,我最开始使用的是最新的r16版本,一直出现,后来重新下载r10e的,就编译通过 - 在执行完./compile-ffmpeg.sh all命令后出现错误提示
ffmpeg yasm not found, use –disable-yasm for a crippled build
这是因为 FFMPEG为了提高编译速度,使用了汇编指令,如果系统中没有yasm指令的话,就会出现上述的问题。
解决办法是:
A 如果是Windows系统, 从网上下载一个 yasm.exe 并安装在mingw/bin下面,重新编译,就不会出现该错误了;
B 如果是Linux系统,则更简单,直接在终端输入 sudo apt-get install yasm ,安装好后,重新编译就 OK了。