ijkplayer介紹
B站開源的視頻播放框架,基于ffmpeg,支持Android和iOS
github鏈接
編譯生成靜態(tài)庫
- Build iOS(按照ijkplayer文檔執(zhí)行)
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.0
./init-ios.sh
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
創(chuàng)建一個新項目,并將
ijkplayer-ios/ios/IJKMediaPlayer
目錄下的IJKMediaPlayer.xcodeproj拉進項目中.-
選擇
Target
為IJKMediaFramework
,然后點擊Edit Scheme
按鈕
-
設(shè)置
Run
->info
->Build Configuration
的值為Release
分別選擇
模擬器
和真機
,進行一次Bunild.在Products文件夾下就可以看到生成的.framework
- 右擊
IJKMediaFramework.framework
,選擇Show in Finder
,可以找到適用于模擬器
和真機
的兩個靜態(tài)庫
-
lipo -info
查看信息
cd Release-iphonesimulator/IJKMediaFramework.framework
lipo -info IJKMediaFramework
//輸出Architectures in the fat file: IJKMediaFramework are: i386 x86_64
cd Release-iphoneos/IJKMediaFramework.framework
lipo -info IJKMediaFramework
//輸出Architectures in the fat file: IJKMediaFramework are: armv7 arm64
- 最后在
Product
目錄下執(zhí)行合并的命令,你就可以得到一個即支持模擬器又支持真機的靜態(tài)庫了
lipo -create Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
- 將生成的
IJKMediaFramework
文件,復(fù)制到Release-iphoneos/IJKMediaFramework.framework
目錄下,替換掉原來的IJKMediaFramework
. - 至此完整的
IJKMediaFramework.framework
已經(jīng)生成,可以直接放到項目中使用了.
注意事項
ijkplayer的文檔中列出了一些可能需要添加的依賴庫 (Maybe something else, if you get any link error)
- 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
我遇到的問題
Undefined symbols for architecture x86_64:
解決方法:添加
libstdc++.tbd