ijkplayer iOS项目集成教程

重新回炉写了一篇带详细图文的,请移步这里

最近接到了视频直播方面的开发任务。第一次接触到视频领域并且周边也没有熟悉这块领域的大牛,只好先找些开源的方案来使用。

比较了两个网上讨论比较多并且支持Android/iOS的项目

  • Vitamio
  • IJKPlayer

首先说下Vitamio目前可以拿到的版本是4.20,商业使用需要付费。
目前手头上的iPhone6s iOS为9.0.2,在播放RTMP直播的情况下反复切到后台或者直接锁屏有很大的几率崩溃。另外Vitamio错误提示不完善,我们QA最喜欢用飞行模式测试大法:你断网了要暂停,网络恢复了要继续播放啊(策划需求)。但是在断网等情况下根本就没回调,即便用了AFNetWorking的网络监测暂停恢复Vitamio也有几率崩溃,根本没法过QA……

IJKPlayer是国内B站的bbcallen大大写的开源视频播放项目。除了B站,美拍和斗鱼的App都有在使用的样子,应该说经得起行业领域的考验了,对我采用IJKPlayer多了一份信心。
后面事实证明,IJKPlayer确实很省心。

将IJKPlayer集成到项目中其实还会遇到不少问题,我将遇到的问题记录下来,希望能帮助到各位,少走些弯路。

我的构建环境

  • OS:Mac OSX 10.11.2
  • iOS:Xcode 7.2
  • HomeBrew
  • Git

安装构建必要的环境

如果因为墙的关系或者速度太慢可以使用proxychains,网上教程很多,就不涉及了。

# install homebrew, git, yasm
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm

构建

下载ffmpeg和编译ffmpeg会花费比较长的时间,可以去泡一杯咖啡:)

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.4.4.1
./init-ios.sh
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

运行

用Xcode打开ios/IJKMediaDemo/IJKMediaDemo.xcodeproj,验证是否构建正确并可以学习如何使用IJKPlayer。

IJKDemoSampleViewController.m //刚开始上手可以先从sampleList加些播放源来试试手
IJKMoviePlayerViewController.m  //这里学习IJKplayer的使用方法

集成

这是比较重要的一步,估计也是最容易卡住的一步。

# import ios/IJKMediaPlayer for MediaPlayer.framework-like interface (recommended)
# open ios/IJKMediaDemo/IJKMediaDemo.xcodeproj with Xcode

因为本人没Get到上面的点,只好在issue搜索,发现一条关于制作.a文件的提示结果就纠结在制作.a文件上卡了1天(大坑),这个离正确答案很近但它不是正确答案。

集成步骤

1.将ijkplayer整个目录复制到项目中,需要保持ijkplayer内的目录结构,可以删除Android和一些无关的文件,ijkplayer中的目录结构如下:


ijkplayer iOS项目集成教程_第1张图片
ijkplayer tree状结构

ijkplayer iOS项目集成教程_第2张图片
在ijkplayer目录下的结构

2.将IJKMediaPlayer.xcodeproj拽入项目中,并添加如下类库:


ijkplayer iOS项目集成教程_第3张图片

3.移植DEMO项目的代码示例,写死一个播放源,并运行。


ijkplayer iOS项目集成教程_第4张图片

完美!

Updated on 2016-05-13

为苦于各种奇怪原因而无法玩耍的小伙伴们提供了包装了ijkplayer的pod,仅供测试体验。
1.基于ijkplayer 5737ccc提交制作成的framework,需要注意的是需要iOS8+
2.如果使用ijkplayer过程中遇到BUG什么的,可以移步去ijkplayer作者的GitHub上提issue或者PR。
哦对了,地址在这里https://coding.net/u/shirokuma/p/IJKMediaLibrary/git,因framework超过100MB无法传到GitHub上,就放到Coding上了。祝各位玩的愉快!

你可能感兴趣的:(ijkplayer iOS项目集成教程)