ijkplayer是B站开源的一款视频直播框架,它是基于ffmpeg的。美拍和斗鱼都使用到了 ijkplayer 项目。ijkplayer 实现了跨平台功能,支持 Android 和 iOS 双平台;API 易于集成;编译配置可裁剪,方便控制安装包大小;支持 硬件加速解码,更加省电。 个人是做iOS开发的,最近正在学习ijkplayer框架,故在这里详细讲一下如何在iOS项目中集成ijkplayer。
一、下载ijkplayer框架
ijkplayer项目地址:https://github.com/Bilibili/ijkplayer
下载完成后解压,解压后文件目录如下:
二、编译ijkplayer
1、首先需要配置编译环境,需要安装homebrew
,git
,yasm
(需先安装ruby环境)
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm
2、开始编译ijkplayer(本质上是对ffmpeg的编译)
cd ijkplayer-master
./init-ios.sh
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
(1)通过终端进入ijkplayer-master文件夹
(2)执行命令行./init-iOS.sh(该命令是去下载ffmpeg,时间比较长)
(3)步骤2执行完毕后,进入到ijkplayer-master文件夹下的ios目录
(4)通过终端在ios目录下,依次执行./compile-ffmpeg.sh clean
和 ./compile-ffmpeg.sh all
命令行来编译ffmpeg(编译时间较长,耐心等待即可)
三、打包IJKMediaFramework框架
ijkplayer
框架已经编译完成,现在到了使用阶段了。若想使用ijkplayer
,则需要把该框架集成到要使用的项目中。 现在有两种集成方法可供选择:
1、直接在项目中导入IJKMediaPlayer.xcodeproj
即可,这种方法比较简单,不再赘述。
2、将ijkplayer
打包成framework
的格式,将打包后的IJKMediaFramework.framework
导入项目中即可使用。
(1)
(2) 设置Scheme
(3) 将Scheme设置好后,分别在模拟器和真机环境下进行编译
(4) 编译完成后,进行如下操作:
(5) 通过终端执行命令行来合并文件
lipo -create "真机IJKMediaFramework文件路径" "模拟器IJKMediaFramework文件路径" -output "合并后的IJKMediaFramework文件路径"
(6) 现在到了打包的最后一步,将原来真机编译文件目录下的IJKMediaFramework
文件替换为合并后的IJKMediaFramework
文件
到此,ijkplayer已经打包完毕。
四、集成ijkplayer
将打包好的IJKMediaFramework.framework
文件导入到需要使用的项目中,并为其添加相关依赖框架。
在需要的文件中引用IJKMediaFramework.h就可以使用了
#import <IJKMediaFramework/IJKMediaFramework.h>