美文网首页
ijkplayer 开箱使用(iOS版)

ijkplayer 开箱使用(iOS版)

作者: pengxiaochao | 来源:发表于2020-04-11 21:22 被阅读0次
为我司伟大的bilibili 干杯

打开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 架构

注:需要安装 homebrewgityasm等开发工具;

安装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工程是失败的)

demo 运行成功截图

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;

1.1 选择 IJKMediaFramework
1.2 选择 Generic iOS Device
1.3 选择 release 模式
如图:

release Framework 编译
3.2.3 成功截图
release 和debug 编译framework 成功截图
3.2.4 合并 debug 和release 包

通过终端 进行合并,合并命令如下
注意 :合并后的文件路径需要有文件名

lipo -create "真机版本路径" "模拟器版本路径" -output "合并后的文件路径"

如图:

3.2.5 替换Framwork
合并后的包,替换Release 中的Framework
3.2.6 导入farmework 到项目开发
111586950630_.pic.jpg

4.注意事项

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 支持

相关文章

网友评论

      本文标题:ijkplayer 开箱使用(iOS版)

      本文链接:https://www.haomeiwen.com/subject/vyepmhtx.html