iOS 短連接實(shí)現(xiàn)視頻彈幕(附播放器)

項(xiàng)目需要用循環(huán)調(diào)用接口的方法實(shí)現(xiàn)播放視頻彈幕(不要問(wèn)為什么,領(lǐng)導(dǎo)讓的),新手寫(xiě)的不太好,只是簡(jiǎn)單的實(shí)現(xiàn)總結(jié)一下。


先推薦兩個(gè)庫(kù):

開(kāi)源彈幕庫(kù):github.com/unash/BarrageRenderer

一個(gè)不錯(cuò)的開(kāi)源播放器:github.com/guowilling/SRVideoPlayer


因?yàn)轫?xiàng)目做的是直播,沒(méi)有關(guān)聯(lián)彈幕和播放時(shí)間,但要實(shí)現(xiàn)最基本的彈幕效果(比如后進(jìn)來(lái)的人看不到他進(jìn)來(lái)之前的彈幕)主要是在接口上做的處理。接口中有兩個(gè)重要參數(shù):一個(gè)是開(kāi)始播放視頻的當(dāng)前時(shí)間戳,另一個(gè)是最后一條彈幕的id,這兩個(gè)參數(shù)保證了在循環(huán)調(diào)用接口時(shí)顯示在屏幕上的彈幕的正常邏輯。


說(shuō)幾個(gè)要注意的:

播放器的初始化寫(xiě)在了按鈕的響應(yīng)事件里,傳入需要的參數(shù)和鏈接,目前為空,為了避免崩潰,彈幕用的是測(cè)試數(shù)據(jù)。

正式的是我封裝的一個(gè)請(qǐng)求方法,根據(jù)接口來(lái)做處理的:

如果是push進(jìn)去的一個(gè)播放器來(lái)播放視頻和彈幕,因?yàn)槭嵌〞r(shí)器循環(huán)調(diào)用接口,退出時(shí)如果不銷毀定時(shí)去,當(dāng)前視圖也不會(huì)dealloc,我是在前一個(gè)控制器中,把寫(xiě)成屬性的定時(shí)器銷毀:

-(void)viewDidDisappear:(BOOL)animated{

[self.player.rendererstop];

[self.player.danmuTimerinvalidate];

//測(cè)試定時(shí)器

[self.player.timerinvalidate];

}

最后附上demo鏈接:

github.com/hsshuaigit/HSRepository

忘了效果圖:

圖片發(fā)自簡(jiǎn)書(shū)App
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容