最近项目中需要用到播放器,所以接入了B站的IJKPlayer,但是在编译时遇到了问题。执行 ./compile-ffmpeg.sh all 这一步时报错,如下:
原因是apple现在不允许32位的应用上架AppStore了,弱化了对armv7的处理
arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
i386是针对intel通用微处理器32位处理器
x86_64是针对x86架构的64位处理器
模拟器32位处理器测试需要i386架构,
模拟器64位处理器测试需要x86_64架构,
真机32位处理器需要armv7,或者armv7s架构,
真机64位处理器需要arm64架构。
解决方法是:
需要在 compile-ffmpeg.sh 删除 armv7 , 修改方法如下:
也就是将 FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64" 改为 FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
接着重新执行编译ffmpeg的命令: ./compile-ffmpeg.sh all
编译完成接入到项目,编译时报错
需要注释两个文件的引用代码。两个文件分别是avconfig.h和config.h
如果点击报错的地方没反应,全局搜索也找不到,那么你就需要直接到文件目录去找了
反键选择Reveal in Log,根据路径找到avconfig.h
直接打开,然后注释掉# include "armv7/avconfig.h"
config.h也是同理
也是打开,然后注释掉# include "armv7/config.h"