跨平台ffmpeg播放器开发(六)编译SDL2到项目中

前言

由于实在是SDL在iOS上用得比较少,尤其是在iOS平台上,苹果对自己的播放框架封装的比较好,再加上有B站的IJKPlayer这样的跨移动端框架就导致自己造车轮子这件吃力又不讨好的事在iOS上做的人就比较少了,导致遇见一些坑没办法通过查阅大量资料和询问他人来解决,毕竟开发时间和成本都是一个很重要的因素.我因为公司的需求,所以现在去写这方面的东西,本来Opengl ES已经出效果了,但可惜被否决掉了,我个人来讲还是比较倾向于在项目中去使用相应的框架的,一方面现在音视频资历尚浅,另一方面不可否认音视频开发的难度还是相对来说比较大的.

使用框架其实也有很多不确定性,例如刚刚举例的IJKPlayer,他确实是挺有名的,我也十分钦佩他的作者,一个人负责主要维护着这么大的项目,加之去B站工作也算是一个小梦想吧.但这个框架其实是把双刃剑,看了下他的代码,SDL,FFplay他都有在使用,比较取巧吧,因为有些事SDL不太好做,所以就导致了B站的这个框架结构比较乱吧,但一个人去维护这也无可厚非,这也导致了你是用这个框架可能有70%都是不确定因素,出了问题到时也不知道该如何下手,反正先研究着对以后解决BUG总是有好处的.

在这里要特别鸣谢github的manifest前辈,是他解决了我前后四天无法搞定的环境配置问题.

编译SDL2

  • 首先利用git下载manifest前辈的编译脚本

  • 事先安装好hg,svn,git这些工具

  • 安装rubygems(这个mac一般是装好了的),colorize(终端执行sudo gem install colorize)

  • 终端下进入git下载好的脚本目录,cd进入dl-ios-framework目录,执行rake就可以自动编译SDL2.framework了,目前支持架构:armv7 armv7s i386 x86_64 arm64,基本上使用与目前市面上所有流通的iOS平台.接下来只要慢慢等就好了.

编译好的百度云盘地址

  链接: https://pan.baidu.com/s/1jIRoxYQ 密码: ymb6

SDL2导入项目

这里推荐manifest前辈写的一个Xcode模板,目前支持Xcode8和iOS10.0,这个是今天我刚刚和前辈沟通解决的哈哈.

github上的模板地址

在终端执行下面两句

$ mkdir -p ~/Library/Developer/Xcode/Templates
//将git上的内容直接拉到你的xcode模板目录
$ git clone https://github.com/manifest/sdl-ios-templates ~/Library/Developer/Xcode/Templates/SDL

执行完之后,你打开Xcode,新建项目就可以看到SDL模板了,点击新建并将上一步编译好的SDL2框架直接导入到项目里,然后就可以直接运行了,这跟以往那种AppDelegate稍有不同,整个页面感觉就这一个界面,如果想回到以往那种熟悉的传统AppDelegate开发,只需要将main.c更改后缀名,更改相关导入库,并新建delegate文件就可以了.

屏幕若上下有黑边只需要新建Launch Screen SB即可.

至于原项目导入,需要注意framework search path设置,这里由于我的项目比较乱一直环境配不好,所以便没有在尝试,原理上是正确的.

你可能感兴趣的:(跨平台ffmpeg播放器开发(六)编译SDL2到项目中)