IJKPlayer编译FFmpeg时的遇到的问题

最近项目中需要用到播放器,所以接入了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

如果点击报错的地方没反应,全局搜索也找不到,那么你就需要直接到文件目录去找了


avconfig.h Not Found

反键选择Reveal in Log,根据路径找到avconfig.h

直接打开,然后注释掉# include "armv7/avconfig.h"


config.h也是同理


config.h Not Found


config.h

也是打开,然后注释掉# include "armv7/config.h"


你可能感兴趣的:(IJKPlayer编译FFmpeg时的遇到的问题)