iOS端彈幕相關(guān)調(diào)研

目前主流的視頻網(wǎng)站均支持了彈幕功能,調(diào)研了一下移動端彈幕實(shí)現(xiàn)的主要方向,B站貌似提供了DanmakuFlame框架稳摄,但不知道為什么我在Github上沒有找到對應(yīng)的iOS版本活孩。
我在Github上查看到的最全面的框架是:BarrageRenderer
我在開發(fā)自己的彈幕框架時有些標(biāo)準(zhǔn)參考了這個框架,最終進(jìn)行性能對比的測試也是與這個框架進(jìn)行了對比咨油。雖然這個框架的完成度已經(jīng)比較高了,但我認(rèn)為還有一些值得優(yōu)化的點(diǎn)。

框架的主要構(gòu)成

  • 目前主流的實(shí)現(xiàn)一般采用 播放器->軌道->彈幕 這樣的三層結(jié)構(gòu)劃分彈幕框架那先,使用時將彈幕信息傳入播放器,播放器分配軌道扑毡,軌道播放彈幕胃榕。

  • 在我自己的實(shí)現(xiàn)中增加了幾個部件,這個結(jié)構(gòu)變成了:播放器->軌道組->分發(fā)器->軌道控制器->軌道->彈幕瞄摊。

  • 新增了軌道組勋又、分發(fā)器、軌道控制器三個角色來提供更多樣豐富的功能换帜。

技術(shù)選擇

根據(jù)我的調(diào)研結(jié)果楔壤,iOS端目前實(shí)現(xiàn)彈幕的動畫手段有UIViewAnimation和CADisplayLink兩種,根據(jù)我個人的主觀意志對比一下優(yōu)劣:

A.UIViewAnimation:
優(yōu)點(diǎn):
1.調(diào)用簡單惯驼,直接規(guī)定初末狀態(tài)就可以實(shí)現(xiàn)蹲嚣。
2.據(jù)說CoreAnimation執(zhí)行的效率比直接使用CADisplayLink要好(我自己沒有證實(shí)過)递瑰。
缺點(diǎn):
1.無法規(guī)定彈幕軌跡,對彈幕運(yùn)動的細(xì)節(jié)缺少控制隙畜,因此這種實(shí)現(xiàn)方式能實(shí)現(xiàn)的彈幕形態(tài)比較單一抖部。
2.貌似只有UIView會有animatedWith接口,不能使用CALayer议惰,這可能會導(dǎo)致它的性能瓶頸比CADisplayLink略低一些(這個與優(yōu)點(diǎn)的2不沖突慎颗,優(yōu)點(diǎn)2的對比條件應(yīng)該是兩種都使用UIView做動畫)。
3.如果你希望視頻暫停是彈幕停在屏幕中不動言询,UIViewAnimation可能做不到俯萎。

B.CADisplayLink
優(yōu)點(diǎn):
1.可以定義彈幕動畫的任意一處細(xì)節(jié),同樣是從A點(diǎn)移動到B點(diǎn)运杭,CADisplayLink可以定義曲線夫啊,而UIViewAnimation只能定義直線(也可能有方法我不知道)。
2.CADisplayLink不依賴UI組件辆憔,所以彈幕的變化可以不局限于UI變化撇眯,甚至可以在變化中不斷更換Model或者文案。
缺點(diǎn):
1.實(shí)現(xiàn)起來確實(shí)沒有UIAnimationView容易躁愿。

總之叛本,UIViewAnimation是一套快捷簡便的方案,但支持的彈幕種類彤钟、彈幕控制方面有一定局限来候;CADisplayLink則必定伴隨一套大而全的彈幕機(jī)制,其提供的回報(bào)也是豐富的逸雹,我們可以精準(zhǔn)控制到彈幕播放中的每一處細(xì)節(jié)营搅。
結(jié)論:不論使用哪種方式,表現(xiàn)給使用者的便捷性和拓展性都應(yīng)當(dāng)是一致的梆砸,所擇CAdisplayLink來實(shí)現(xiàn)能提供能豐富的功能转质,至于實(shí)現(xiàn)復(fù)雜性,F(xiàn)rame就是為了解決這些復(fù)雜性存在的帖世。

附上自身實(shí)現(xiàn)的一個彈幕組件:
LNDanmakuMaster

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末休蟹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子日矫,更是在濱河造成了極大的恐慌赂弓,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哪轿,死亡現(xiàn)場離奇詭異盈魁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)窃诉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門杨耙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赤套,“玉大人,你說我怎么就攤上這事珊膜∪菸眨” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵辅搬,是天一觀的道長唯沮。 經(jīng)常有香客問我,道長堪遂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任萌庆,我火速辦了婚禮溶褪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘践险。我一直安慰自己猿妈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布巍虫。 她就那樣靜靜地躺著彭则,像睡著了一般。 火紅的嫁衣襯著肌膚如雪占遥。 梳的紋絲不亂的頭發(fā)上俯抖,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音瓦胎,去河邊找鬼芬萍。 笑死,一個胖子當(dāng)著我的面吹牛搔啊,可吹牛的內(nèi)容都是我干的柬祠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼负芋,長吁一口氣:“原來是場噩夢啊……” “哼漫蛔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起旧蛾,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤莽龟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蚜点,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轧房,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年绍绘,在試婚紗的時候發(fā)現(xiàn)自己被綠了奶镶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迟赃。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖厂镇,靈堂內(nèi)的尸體忽然破棺而出纤壁,到底是詐尸還是另有隱情,我是刑警寧澤捺信,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布酌媒,位于F島的核電站,受9級特大地震影響迄靠,放射性物質(zhì)發(fā)生泄漏秒咨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一掌挚、第九天 我趴在偏房一處隱蔽的房頂上張望雨席。 院中可真熱鬧,春花似錦吠式、人聲如沸陡厘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糙置。三九已至,卻和暖如春是目,著一層夾襖步出監(jiān)牢的瞬間谤饭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工胖笛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留网持,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓长踊,卻偏偏與公主長得像功舀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子身弊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 用到的組件 1辟汰、通過CocoaPods安裝 2、第三方類庫安裝 3阱佛、第三方服務(wù) 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 14,601評論 1 180
  • 版本記錄 前言 在我們做直播等視頻類app的時候帖汞,總是有顯示和發(fā)送彈幕的要求,彈幕可以方便用戶進(jìn)行溝通和互動凑术,增加...
    刀客傳奇閱讀 5,057評論 8 16
  • LNDanmakuMaster是一個輕量的彈幕播放器翩蘸,通過:創(chuàng)建播放器->創(chuàng)建軌道->添加彈幕的方式進(jìn)行彈幕播放,...
    BangRaJun閱讀 2,694評論 2 9
  • 久違的晴天淮逊,家長會催首。 家長大會開好到教室時扶踊,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗(yàn)郎任。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,493評論 16 22
  • 今天感恩節(jié)哎秧耗,感謝一直在我身邊的親朋好友。感恩相遇舶治!感恩不離不棄分井。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,551評論 0 11