git地址
https://github.com/bilibili/ijkplayer.git
编译过程
因为IJKPlayer没有集成CocoaPods, 只能下载源码, 打包成framework
1. 下载源码, 进入iOS文件夹, 切换分支
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8
2. 初始化init
./init-ios.sh
3. 编译ffmpeg
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
编译会出现问题

解决方案
修改 compile-ffmpeg.sh 删除脚本中的armv7
第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"
再重新执行
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
4. 打包framework
4.1 打开 ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj

4.2 打包真机 command+B 编译即可
会出现一个issue

解决方案:


找到avconfig.h的路径, 其中../表示当前project的上一级

注释这一行

再重新编译
还会出现下面的错误, 按照上面的方法同样处理
/build/universal/include/libffmpeg/config.h:34:21: 'armv7/config.h' file not found
4.3 打包模拟器, 选择一个模拟器, command+B 编译即可
5. 合并framework
5.1 找到Products中的IJKMediaFramework


5.2 合并
打开终端, 先 cd 到 Products 目录下
然后执行: lipo -create 真机framework路径 模拟器framework路径 -output 合并的文件路径
lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
5.3 将生成的 IJKMediaFramework 文件替换掉 真机framework 中的 IJKMediaFramework 文件.

集成 framework 到项目中
直接将 IJKMediaFramework.framework 拖入到工程中即可
注意记得勾选 Copy items if needed 和 对应的 target
添加依赖库

其中官方给的少了一个
linked c++
网友评论