1、 下载
-
获取ijkplayer源码
打开终端,在桌面新建一个文件夹,例如LiveStreaming
cd 到LiveStreaming中,
依次执行
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8
-
ijkplayer是基于ffmpeg这个库的,因此需要导入ffmpeg
同级路径下执行:
./init-ios.sh
执行 ./init-ios.sh前

执行 ./init-ios.sh后

-
支持https(可选)
如果不需要支持,可不进行这一步
获取 openssl 并初始化
./init-ios-openssl.sh
cd ios
在模块文件中添加一行配置 以启用 openssl 组件
echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh
2、编译
cd到次级目录ios下,先执行
./compile-ffmpeg.sh clean
如果设置了支持https,则
先执行,编译openssl
./compile-openssl.sh all
再执行,编译ffmpeg
./compile-ffmpeg.sh all
如果没有设置https,则只需
编译ffmpeg
./compile-ffmpeg.sh all
这里可能会报错
./libavutil/arm/asm.S:50:9: error: unknown directive
.arch armv7-a
^

解决方案:
打开如图

第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"
运行完成后如图

3、打包(制作静态库)
打开项目IJKMediaPlayer,要把这个做成静态库



-
如果做了支持https设置,则进行下一步

点击上图加号


成功添加ibcrypto.a 和 libssl.a 文件。
-
打包真机和模拟器两个版本
1、如果进行了https设置,则需要删除armv7

2、分别选择真机和模拟器,进行编译(command+b)
3、合并两个framework


打开终端
cd到Products路径下
执行
lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
得到合并后的framework

替换
合并后的framework替换真机目录下的,可按下图进行直接覆盖

4、保存最终得到的IJKMediaFramework.framework(真机编译目录下的)
4、集成IJKMediaFramework.framework到自己项目
-
简单粗暴的方法:
直接复制IJKMediaFramework.framework,然后拷贝到自己项目的根目录下
-
添加相关依赖,如下图

-
下面三个一定要添加,不然报错



command+shift+g,弹出

输入:/usr/lib 进入

到这里,就已经完成集成,项目可成功运行。
网友评论