一:首先到github下载demo
进入到ijkplayer master下,安装ffmepg 执行./init-ios.sh ,报错。
./init-ios-openssl.sh 需要https 注意,需要执行此步。
二:编译ffmepg
我没有解决以上安装报的错误,直接按照github上的命令进行执行
cd ios
./compile-ffmpeg.sh clean 清楚缓存数据防止报错
./compile-ffmpeg.sh all
./compile-openssl.sh all 编译链接ssl(需要支持https的需要执行)
第二条命令继续报错如下:
我在网上找了个error:RPC failed的解决方法,
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000
不知道能不能行的通,执行之后,按照如上终端的指示执行了“sh init-ios.sh”
完美,成功了。
进行执行cd ios
./compile-ffmpeg.sh clean
如果需要支持https 需要执行 ,如果不需要https可以跳过这一步 ./compile-openssl.sh all
./compile-ffmpeg.sh all 这一步报错了 (编译ffmpeg)
armv7 对32位系统的支持,如果需要支持armv7的编译器,可以使用以下2种方法
1.可以在 compile-ffmpeg.sh中删除 armv7,arm7s【不需要适配的话可以使用此方法】
2.使用之前的 Xcode 版本,这里我用的是 9.1 可以顺利编译,点这里下载 ,并指定 Xcode 路径
三:合并打包,合成framework
3.1打开ios下IJKMediaPlayer,打开工程
3.2.随便选择一个device,commond +b编译生成一个模拟器 版本
选择Generic IOS Device commond +b编译生成一个真机版本
生成真机版本的时候会报错,如下图
解决方法如下2步:
1.下载的demo ijkplayer-master/ios/build/universal/include/libavutil文件夹中找到avconfig.h ,打开吧关于arm7的代码注释掉
2.下载的demo ijkplayer-master/ios/build/universal/include/libffmpeg文件夹中找到config.h ,打开吧关于arm7的代码注释掉
3.下载的demo ijkplayer-master/ios/build/universal/lib/libcrypto.a 添加到link Binary中(https相关)
4.下载的demo ijkplayer-master/ios/build/universal/lib/libssl.a 添加到link Binary中(https相关)
重新编译,完成之后,如下图
3.3 合并
cd到终端,进入到上图所示的product文件夹中
然后执行: lipo -create 真机framework路径 模拟器framework路径 -output 合并的文件路径,如下图
lipo -create /Users/xuzhenzhen/Library/Developer/Xcode/DerivedData/IJKMediaDemo-cazptvtfezyvpqgpgfrmwnacxzlr/Build/Products/Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework /Users/xuzhenzhen/Library/Developer/Xcode/DerivedData/IJKMediaDemo-cazptvtfezyvpqgpgfrmwnacxzlr/Build/Products/Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output /Users/xuzhenzhen/Library/Developer/Xcode/DerivedData/IJKMediaDemo-cazptvtfezyvpqgpgfrmwnacxzlr/Build/Products/IJKMediaFramework
四:集成到项目中
吧上一步中真机的 IJKMediaFramework.framework 包直接拖入到使用的项目中 ,然后根据github上的提示,完成其他依赖库的导入。