1、 下載
-
獲取ijkplayer源碼
打開終端,在桌面新建一個(gè)文件夾,例如LiveStreaming
cd 到LiveStreaming中,
依次執(zhí)行
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8
-
ijkplayer是基于ffmpeg這個(gè)庫的,因此需要導(dǎo)入ffmpeg
同級(jí)路徑下執(zhí)行:
./init-ios.sh
執(zhí)行 ./init-ios.sh前

執(zhí)行 ./init-ios.sh后

-
支持https(可選)
如果不需要支持,可不進(jìn)行這一步
獲取 openssl 并初始化
./init-ios-openssl.sh
cd ios
在模塊文件中添加一行配置 以啟用 openssl 組件
echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh
2、編譯
cd到次級(jí)目錄ios下,先執(zhí)行
./compile-ffmpeg.sh clean
如果設(shè)置了支持https,則
先執(zhí)行,編譯openssl
./compile-openssl.sh all
再執(zhí)行,編譯ffmpeg
./compile-ffmpeg.sh all
如果沒有設(shè)置https,則只需
編譯ffmpeg
./compile-ffmpeg.sh all
這里可能會(huì)報(bào)錯(cuò)
./libavutil/arm/asm.S:50:9: error: unknown directive
.arch armv7-a
^

解決方案:
打開如圖

第24行改為:FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
第120行改為:if [ "$FF_TARGET" = "armv7s" -o "$FF_TARGET" = "arm64" ]; then
第159行改為:echo " compile-ffmpeg.sh arm64|i386|x86_64"
運(yùn)行完成后如圖

3、打包(制作靜態(tài)庫)
打開項(xiàng)目IJKMediaPlayer,要把這個(gè)做成靜態(tài)庫



-
如果做了支持https設(shè)置,則進(jìn)行下一步

點(diǎn)擊上圖加號(hào)


成功添加ibcrypto.a 和 libssl.a 文件。
-
打包真機(jī)和模擬器兩個(gè)版本
1、如果進(jìn)行了https設(shè)置,則需要?jiǎng)h除armv7

2、分別選擇真機(jī)和模擬器,進(jìn)行編譯(command+b)
3、合并兩個(gè)framework


打開終端
cd到Products路徑下
執(zhí)行
lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
得到合并后的framework

替換合并后的framework替換真機(jī)目錄下的,可按下圖進(jìn)行直接覆蓋

4、保存最終得到的IJKMediaFramework.framework(真機(jī)編譯目錄下的)
4、集成IJKMediaFramework.framework到自己項(xiàng)目
-
簡單粗暴的方法:
直接復(fù)制IJKMediaFramework.framework,然后拷貝到自己項(xiàng)目的根目錄下
-
添加相關(guān)依賴,如下圖

-
下面三個(gè)一定要添加,不然報(bào)錯(cuò)



command+shift+g,彈出

輸入:/usr/lib 進(jìn)入

到這里,就已經(jīng)完成集成,項(xiàng)目可成功運(yùn)行。