系統編譯環境
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了。