前言
由于實在是SDL在iOS上用得比較少,尤其是在iOS平臺上,蘋果對自己的播放框架封裝的比較好,再加上有B站的IJKPlayer這樣的跨移動端框架就導(dǎo)致自己造車輪子這件吃力又不討好的事在iOS上做的人就比較少了,導(dǎo)致遇見一些坑沒辦法通過查閱大量資料和詢問他人來解決,畢竟開發(fā)時間和成本都是一個很重要的因素.我因為公司的需求,所以現(xiàn)在去寫這方面的東西,本來Opengl ES已經(jīng)出效果了,但可惜被否決掉了,我個人來講還是比較傾向于在項目中去使用相應(yīng)的框架的,一方面現(xiàn)在音視頻資歷尚淺,另一方面不可否認音視頻開發(fā)的難度還是相對來說比較大的.
使用框架其實也有很多不確定性,例如剛剛舉例的IJKPlayer,他確實是挺有名的,我也十分欽佩他的作者,一個人負責(zé)主要維護著這么大的項目,加之去B站工作也算是一個小夢想吧.但這個框架其實是把雙刃劍,看了下他的代碼,SDL,FFplay他都有在使用,比較取巧吧,因為有些事SDL不太好做,所以就導(dǎo)致了B站的這個框架結(jié)構(gòu)比較亂吧,但一個人去維護這也無可厚非,這也導(dǎo)致了你是用這個框架可能有70%都是不確定因素,出了問題到時也不知道該如何下手,反正先研究著對以后解決BUG總是有好處的.
在這里要特別鳴謝github的manifest前輩,是他解決了我前后四天無法搞定的環(huán)境配置問題.
編譯SDL2
首先利用git下載manifest前輩的編譯腳本
事先安裝好hg,svn,git這些工具
安裝rubygems(這個mac一般是裝好了的),colorize(終端執(zhí)行sudo gem install colorize)
終端下進入git下載好的腳本目錄,cd進入dl-ios-framework目錄,執(zhí)行rake就可以自動編譯SDL2.framework了,目前支持架構(gòu):armv7 armv7s i386 x86_64 arm64,基本上使用與目前市面上所有流通的iOS平臺.接下來只要慢慢等就好了.
編譯好的百度云盤地址
鏈接: https://pan.baidu.com/s/1jIRoxYQ 密碼: ymb6
SDL2導(dǎo)入項目
這里推薦manifest前輩寫的一個Xcode模板,目前支持Xcode8和iOS10.0,這個是今天我剛剛和前輩溝通解決的哈哈.
在終端執(zhí)行下面兩句
$ mkdir -p ~/Library/Developer/Xcode/Templates
//將git上的內(nèi)容直接拉到你的xcode模板目錄
$ git clone https://github.com/manifest/sdl-ios-templates ~/Library/Developer/Xcode/Templates/SDL
執(zhí)行完之后,你打開Xcode,新建項目就可以看到SDL模板了,點擊新建并將上一步編譯好的SDL2框架直接導(dǎo)入到項目里,然后就可以直接運行了,這跟以往那種AppDelegate稍有不同,整個頁面感覺就這一個界面,如果想回到以往那種熟悉的傳統(tǒng)AppDelegate開發(fā),只需要將main.c更改后綴名,更改相關(guān)導(dǎo)入庫,并新建delegate文件就可以了.
屏幕若上下有黑邊只需要新建Launch Screen SB即可.
至于原項目導(dǎo)入,需要注意framework search path設(shè)置,這里由于我的項目比較亂一直環(huán)境配不好,所以便沒有在嘗試,原理上是正確的.