打开github
找到ijkplayer
的开源库 https://github.com/bilibili/ijkplayer
废话不多说,直接开文档-只放干货;
1.环境配置
如果读者能提前仔细阅读 ijkplayer README.md 文档会有更好的理解;
Build Environment Require(环境要求)
- Mac OS X 10.11.5(以上)
- Xcode
Features(特性)
- 支持平台
iOS 7.0 ~10.2
- 支持ARM指令集
rmv7, arm64, i386, x86_64, (armv7s is 不推荐)
- 视频输出
OpenGL ES 2.0
- 音频输出
AudioQueue, AudioUnit
- 支持iOS
硬编码(iOS8 以上)
- 依赖:
AVFoundation.Framework.AVPlayer, MediaPlayer.Framework.MPMoviePlayerControlelr (推荐适配iOS8以上)
NOT-ON-PLAN(不再支持)
- 不支持ios 6.0
- 过时的 ARMv5, ARMv6, MIPS 架构
注:需要安装 homebrew
、git
、yasm
等开发工具;
安装bomebrew;
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装git;
brew install git
安装yasm;
brew install yams
安装pkg-config;
brew install pkg-config
检查工具是否成功安装检查;
brew --version
git --version
yasm --version
pkg-config --verison
git clone 项目(项目较大建议使用https);
git clone https://github.com/Bilibili/ijkplayer.git
开源项目目录及其介绍图如下:
ijkplayer 文件结构.jpg切换到稳定分支(README.md 这么写的)
切到 latest 分支 k0.8.8 版本
git checkout -B latest k0.8.8
2.编译ffmpeg
通过 终端
进入到 ijkplayer文件夹
执行./init-ios.sh
脚本,初始化iOS项目;
./init-ios.sh
进入ios
目录 执行 compile-ffmpeg.sh
脚本;
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
两条命令分别执行成功的截图如下:
./compile-ffmpeg.sh clean 成功截图 ./compile-ffmpeg.sh all 成功截图注意(如果需要ijkplayer 支持https 执行了另一个脚本)(如果不需要请跳过)
./init-ios-openssl.sh
/* ijkplayer支持https的情况 */
最后打开 /ijkplayer/ios/IJKMediaDemo/
下的 工程 IJKMediaDemo.xcodeproj
既可以(脚本执行之前build project工程是失败的)
3.引入framework
按照 REDME.md
的介绍;
3.1 集成framework (参考 README.md 即可)
注意:ijkplayer 依赖的库别忘记导就ok了
# Import into Your own Application
# Select your project in Xcode.
# File -> Add Files to ... -> Select ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj
# Select your Application's target.
# Build Phases -> Target Dependencies -> Select IJKMediaFramework
# Build Phases -> Link Binary with Libraries -> Add:
# IJKMediaFramework.framework
#
# AudioToolbox.framework
# AVFoundation.framework
# CoreGraphics.framework
# CoreMedia.framework
# CoreVideo.framework
# libbz2.tbd
# libz.tbd
# MediaPlayer.framework
# MobileCoreServices.framework
# OpenGLES.framework
# QuartzCore.framework
# UIKit.framework
# VideoToolbox.framework
#
# ... (Maybe something else, if you get any link error)
3.2 打包Framework
3.2.1 打包模拟器debug 的Framework;
1.1 选择 IJKMediaFramework
1.2 选择 模拟器(例如:iphone X)
1.3 选择 debug 模式
如图:
debug Framework 编译
3.2.2 打包真机Release 的Framework;
release Framework 编译1.1 选择 IJKMediaFramework
1.2 选择 Generic iOS Device
1.3 选择 release 模式
如图:
3.2.3 成功截图
release 和debug 编译framework 成功截图3.2.4 合并 debug 和release 包
通过终端 进行合并,合并命令如下
注意 :合并后的文件路径需要有文件名
lipo -create "真机版本路径" "模拟器版本路径" -output "合并后的文件路径"
如图:
3.2.5 替换Framwork
合并后的包,替换Release 中的Framework3.2.6 导入farmework 到项目开发
111586950630_.pic.jpg4.注意事项
4.1 编译ijkplayer 报错
编译报错截图修复链接 https://blog.csdn.net/liuzehn/article/details/88049389
编译Framework报错截图:
51586948322_.pic_hd.jpg
修复方法:
avconfig.h 文件报错 config.h 文件报错参考链接
B站开源播放框架ijkplayer(iOS版)使用教程
iOS直播之ijkplayer的集成与简单使用(播放)
ijkplayer 的编译、打包 framework 和 https 支持
网友评论