最近在关注直播这块儿,开始时直接用ffmpeg写了一个,写得比较烂,卡顿很严重,后来听说了B站开源播放框架ijkplayer,于是就去试试看这是链接 ,一用之下果然不错,逢人便向人安利,可总是有部分同学说看不懂、不会用。其实用法都在readme里写得很清楚了,只要照着做就行了。好吧,我知道其实是你们懒得看 -_-!, 那我就在这儿说说大概的步骤吧。
首先配置环境,需要安装 homebrew,git,yasm (需要ruby环境)
![](https://img.haomeiwen.com/i1157342/6f871c8364997903.png)
然后把项目克隆到本地,下载并编译ffmpeg
![](https://img.haomeiwen.com/i1157342/ef5032fee03c1d66.png)
最后导入播放器并用Xcode打开
![](https://img.haomeiwen.com/i1157342/84a1ede8b238d889.png)
这样ijkplayer的官方demo就可以运行了。
![](https://img.haomeiwen.com/i1157342/9c3b6976262314e1.png)
那么重点来了,如何把ijkplayer集成到自己项目里呢,一种是像demo里那样整个工程引用,这里不再展开。另一种就是导入IJKMediaPlayer工程产生的framework包。
![](https://img.haomeiwen.com/i1157342/7b912ca69ff17d64.png)
打包时要注意,模拟器打的包只能在模拟器上用,真机运行的话需要用真机打包。分别用模拟器和真机打包之后可以得到两个包,再合并一下,就可以得到一个通用的包,我demo里的就是个通用包(Debug版)
![](https://img.haomeiwen.com/i1157342/d6f3acde9571d8e4.png)
经朋友提醒,我打的这两个都是Debug版的,正式使用的话最好打成Release版,打包过程一样,只需修改以下选项即可Product->Scheme->Edit Sceme
![](https://img.haomeiwen.com/i1157342/2d6521c759e7123e.png)
导入打好的包和其他依赖库,就可以仿照官方demo调用了,如果懒得写的话就像我一样,直接把ijkplayer里写好的拉到项目里直接用就行了
![](https://img.haomeiwen.com/i1157342/28db8ebd1016540c.png)
这里我要吐槽一下B站,网页版正在直播时把网络断掉,在播放器上右键,选切换站点,屏幕中间立马就出来一句:Video not found or access denied: http://XXXXXX 这样直接把调试语句显示在网页上真的没关系吗?
网友评论
ijkplayer和ffmpeg有什么区别吗
sh init-ios.sh
cd ios
./compile-openssl.sh clean
./compile-ffmpeg.sh clean
./compile-openssl.sh all
./compile-ffmpeg.sh all
是错误的
===================
ijkmp_prepare_async()=0
remove 'timeout' option for rtmp.
No default whitelist set
No default whitelist set
您打包的时候,会报错吗
******************************
ld: warning: ignoring file /Users/IJKMedia/IJKMediaFramework.framework/IJKMediaFramework, missing required architecture armv7 in file /Users/IJKMedia/IJKMediaFramework.framework/IJKMediaFramework (2 slices)
Undefined symbols for architecture armv7:
"_IJKMPMoviePlayerLoadStateDidChangeNotification", referenced from:
-[OCOPMusic installMovieNotificationObservers:] in OCOPMusic.o
"_OBJC_CLASS_$_IJKFFMoviePlayerController", referenced from:
objc-class-ref in OCOPMusic.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
******************************
运行没有问题,就是打包不了
ಥ_ಥ 头痛