1. 获取 ijkplayer 源码
cd 到自己想要保存的文件中,执行一下命令
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8
2. 获取 ffmpeg 并初始化
此过程需要从网上拉取ffmpeg,需要花些时间
执行脚本获取 ffmpeg ,输入一下命令
cd ..
./init-ios.sh
3. 添加 https 支持
获取 openssl 并初始化
./init-ios-openssl.sh
cd ios
在模块文件中添加一行配置 以启用 openssl 组件
echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh
./compile-ffmpeg.sh clean
4. 编译 ffmpeg
编译openssl, 如果不需要https可以跳过这一步
./compile-openssl.sh all
编译ffmpeg
./compile-ffmpeg.sh all
如果编译ffmpeg提示如下错误:
./libavutil/arm/asm.S:50:9: error: unknown directive
.arch armv7-a
^
make: *** [libavcodec/arm/aacpsdsp_neon.o] Error 1
最新的 Xcode 环境中iOS SDK最低支持从iOS 8.0开始了,弱化了对 32 位iOS系统的支持,解决方法:
在compile-ffmpeg.sh中删除armv7, 修改如:
FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
再重新执行出现错误的命令:
./compile-ffmpeg.sh all
5. 打开IJKMediaPlayer项目
选择 Targets ——> IJKMediaFrameworkWithSSL ——> General ——> Linked Frameworks and Libraries ,选择 Add Other... , 然后在 ijkplayer-ios 目录下(也可能是别的名字)的 ios —— build —— universal —— lib 中,选中 libcrypto.a 和 libssl.a 文件,添加进去
6. 打包 framework
1)选择 Xcode 上方导航栏中的 Product ——> Scheme ——> Edit Scheme..., 打开后选择 Run ——> Info ——> Build Configuration,将 Debug 改为 Release。
如图:
2)Cmd + b 直接运行,会报错 avconfig.h 文件找不到,这时候去一下路径找到 avconfig.h 文件,如:
~/Desktop/ijkplayer-ios/ios/build/universal/include/libavutil
打开 avconfig.h ,注释掉
include "armv7/avconfig.h"
![](https://img.haomeiwen.com/i8173311/c7695f45e1af36bb.png)
Cmd + b 再运行,又报错 config.h 文件找不到,去
~/Desktop/ijkplayer-ios/ios/build/universal/include/libffmpeg
中打开 config.h , 同上注释掉
include "armv7/avconfig.h"
7.合并框架
打开终端, 先 cd 到 Products 目录下
然后执行: lipo -create 真机framework路径 模拟器framework路径 -output 合并的文件路径
lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
网友评论