首先,你可以直接找到一個現(xiàn)成的framework包拖進(jìn)項(xiàng)目中使用,當(dāng)然你需要在工程中添加framework必要的庫文件。見文章底部
這里提供一個framework包下載地址:
鏈接: https://pan.baidu.com/s/1o7KntW2 密碼: 99t8
本文主要介紹IJKMediaFramework的制作過程商源。
IJKMediaFramework的github的地址: https://github.com/Bilibili/ijkplayer
不管使用什么方法,將文件下載到本地。
readme中提供的下載方法是利用終端git命令:
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.7.8.1
我是用source tree 直接拉取的栈戳;
下載完成之后:
1.終端中打開下載下來的ijk文件夾
cd ijkplayer(下載的項(xiàng)目所在路徑)
2.運(yùn)行init-ios.sh腳本(過程為下載ffmpeg)
./init-ios.sh
tip:1-2步可以直接在項(xiàng)目中找到init-ios.sh文件拖進(jìn)終端后回車;
3.打開IJKPlayer文件夾下ios文件夾
cd ios(下載的項(xiàng)目下ios文件夾所在路徑)
4.運(yùn)行腳本 clean
./compile-ffmpeg.sh clean
5.運(yùn)行腳本 all 編譯 ffmpeg
./compile-ffmpeg.sh all
tip:3-5步可以直接找到文件拖進(jìn)終端 執(zhí)行clean和all 兩個操作难裆。
compile-ffmpeg.sh路徑 clean 回車
compile-ffmpeg.sh路徑 all ? ? 回車
打開IJKMediaPlayer工程
點(diǎn)擊最上面的IJKMediaFramework-點(diǎn)擊Edit-Scheme.
將run的Build Configuration方式改為release
設(shè)置framework下需要暴露的頭文件子檀。(沒有特殊需求一般不需要修改)(免去此步镊掖,直接cmd+b編譯)
分別在真機(jī)和模擬器環(huán)境下編譯cmd+b
合并framework
需要注意的是亩进,framework不能直接合并
需要合并的文件為IJKMediaFramework.framework下的IJKMediaFramework文件。
lipo -create "真機(jī)版本的IJKMediaFramework路徑" "模擬器版本的IJKMediaFramework的路徑" ?-output "合并后的文件路徑"
Tip:如果在終端中輸入上述命令行后遇到如下錯誤:
crun: error: active developer path (“/Applications/Xcode 2.app/Contents/Developer”) does not exist, use xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools (or see man xcode-select)
可以輸入
sudo?xcode-select?-switch?/Applications/Xcode.app/Contents/Developer
最后用合并完成的IJKMediaFramework替換掉真機(jī)生成的.framework文件中的IJKMediaFramework缩歪;
此時真機(jī)中的IJKMediaFramework.framework 就是我們需要的framework
IJKMediaFramework.framework依賴的庫文件
# AudioToolbox.framework
#? ? ? ? AVFoundation.framework
#? ? ? ? CoreGraphics.framework
#? ? ? ? CoreMedia.framework
#? ? ? ? CoreVideo.framework
#? ? ? ? libbz2.tbd
#? ? ? ? libz.tbd
#? ? ? ? MediaPlayer.framework
#? ? ? ? MobileCoreServices.framework
#? ? ? ? OpenGLES.framework
#? ? ? ? QuartzCore.framework
#? ? ? ? UIKit.framework
#? ? ? ? VideoToolbox.framework
系統(tǒng)的framework庫可以忽略归薛,xcode會自動鏈接。tbd的必須添加
如果編譯錯誤嘗試添加libstdc++.tbd