ijkplayer - 拓展:编解码器格式、https 支持、打包 framwork
1、配置编解码器格式支持
默认为最少支持, 如果足够你使用, 可以跳过这一步. 否则可以改为以下配置:
module-default.sh 更多的编解码器/格式
module-lite-hevc.sh 较少的编解码器/格式(包括hevc)
module-lite.sh 较少的编解码器/格式(默认情况)
# 进入 config 目录 cd config # 删除当前的 module.sh 文件 rm module.sh # 可根据需要替换为`module-default.sh`, `module-lite-hevc.sh`, `module-lite.sh` # 创建软链接 module.sh 指向 module-lite-hevc.sh ln -s module-lite-hevc.sh module.sh cd .. cd ios sh compile-ffmpeg.sh clean
2、添加 https 支持
最后会生成支持 https 的静态文件 libcrypto.a 和 libssl.a# 获取 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
添加 openssl
相关包以支持https
手动给IJKMediaFramework
添加 libcrypto.a
和 libssl.a
文件, 默认不会添加
这两个依赖库的目录为:
ijkplayer-ios/ios/build/universal/lib
, 只有进行了上面跟 openssl
相关的操作, 才会在这个目录下有生成libcrypto.a
和libssl.a
3、打包
framwork
除了 IJKMediaFramework
这个target
, 还有一个叫 IJKMediaFrameworkWithSSL
, 但是不推荐使用这个, 因为大部分基于 ijkplayer
的第三方框架都是使用的前者, 你把后者导入项目还是会报找不到包的错误, 就算你要支持 https
也推荐使用前者, 然后按照上一步添加 openssl
即可支持
首先将debug
改为release
根据需要 编译真机 和 模拟器架构
合并架构
执行: lipo -create 真机framework路径 模拟器framework路径 -output 合并的文件路径
cd 到 Products 路径下执行:
lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
如果合并,后需要把合并后的framework替换掉
Release-iphoneos
中的IJKMediaFramework
如果之前的步骤删除了compile-ffmpeg.sh中armv7,这里会报错,我们直接注释掉就好
用Xcode9可以找到这个 ,但是用Xcode10\11找不到这个 ,本人用Xcode9注释完,在用Xcode10/11编译就没问题了.
实在有需要的同学点赞留言区留邮箱。就不弄云存储了。还得维护😭。
添加系统支持库
拖进项目即可
觉得有用的同学点个关注,或者留言评论区,看到邮件提示消息尽快回复。
签 名:被别人嫉妒,说明你卓越;你嫉妒别人,说明你无能。
座右铭:抓紧一切时间睡觉。