Android直播播放器+彈幕使用總結(jié)

作者簡介 原創(chuàng)微信公眾號郭霖 WeChat ID: guolin_blog

本篇是小河馬的第二篇投稿,分享了他學(xué)習(xí)開源播放器的過程。希望能對大家有所幫助沼瘫。

小河馬的博客地址:

http://www.reibang.com/u/14354bcb0e09

介紹

現(xiàn)在有很多的開源播放器琅锻,首選肯定是B站的

ijkplayer

https://github.com/Bilibili/ijkplayer

本文所選的是基于?ijkplayer?封裝的開源播放器

JieCaoVideoPlayer

https://github.com/lipangit/JieCaoVideoPlayer

彈幕使用的也是B站的開源項(xiàng)目

https://github.com/Bilibili/DanmakuFlameMaster

JieCaoVideoPlayer默認(rèn)提供了基本的UI界面,但是肯定滿足不了每個(gè)人的界面要求誊辉,所以我們就需要在?JieCaoVideoPlayer?上簡單的封裝一下矾湃。首先新建一個(gè) HVideoPlayer類 繼承?JCVideoPlayerStandard:

JCVideoPlayerStandard?對一些基本的界面操作以及頁面邏輯做了封裝,我們只需要繼承這個(gè)類堕澄,然后自定義自己的布局邀跃。如果有你不需要的控件就隱藏,刪除可能會報(bào)錯(cuò)蛙紫。重寫?init方法 初始化一些你自定義的控件和按鈕的點(diǎn)擊事件拍屑。

JieCaoVideoPlayer?是通過 setUp方法 來初始化播放器參數(shù),所以我們也需要來重寫這個(gè)方法來初始化我們自己的一些參數(shù)

需要注意一點(diǎn)的就是播放器器全屏坑傅,這里修改了?FULLSCREEN_ORIENTATION?參數(shù)為?ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE?使播放器點(diǎn)擊全屏后強(qiáng)制全屏并且是橫屏的僵驰,默認(rèn)情況點(diǎn)擊全屏后是豎屏的,并且根據(jù)重力感應(yīng)調(diào)整屏幕方向唁毒。需要注意的是使用播放器的Activity需要設(shè)置為豎屏

android:screenOrientation="portrait"

否則調(diào)用橫屏后整個(gè)?Activity?會整個(gè)橫屏矢渊。

需要注意播放器橫屏后會創(chuàng)建一個(gè)新的播放器實(shí)例和當(dāng)前的播放器不是同一個(gè)實(shí)例,也就是說點(diǎn)擊全屏后會重新初始化當(dāng)前類枉证,并重新調(diào)用?setUp方法矮男。那怎么拿到前面小屏模式下一些必須的參數(shù)呢?查看下JCVideoPlayer全屏的源碼:

可以看到在全屏的時(shí)候重新創(chuàng)建了?JCVideoPlayer?的實(shí)例室谚,并且調(diào)用了?setUp方法 傳入了?url?以及全屏毡鉴,后面這個(gè)?objects?是干嘛的呢?查看源碼:

可以看到這個(gè)?objects?是在父類的?setUp?中賦值的秒赤,說明我們在調(diào)?setUp?傳入的?objects?會相應(yīng)的傳入全屏播放器實(shí)例中猪瞬,這也就有了上面的代碼

默認(rèn)的?objects?的第一個(gè)參數(shù)是標(biāo)題,后面就可以傳遞自己的一些字段入篮,比如我們在全屏實(shí)例中需要回調(diào)一些方法陈瘦,就要將這些接口傳到全屏播放器示例中,否則在全屏中使用這些字段會報(bào)空指針潮售。

在?setUp?中如果當(dāng)前是全屏那么我們需要去加載彈幕痊项,currentScreen?字段是當(dāng)前的狀態(tài)锅风,如果是全屏就顯示彈幕否則就隱藏彈幕相關(guān)的東西。關(guān)于彈幕庫的使用可以參考郭神的文章:

http://blog.csdn.net/guolin_blog/article/details/51933728

這里我就不再細(xì)講了鞍泉。

在當(dāng)直播流異持宀海或者的或者網(wǎng)絡(luò)異常我們需要做一些操作,但?JCVideoPlayer?并沒有提供這方面的回調(diào)咖驮。又只有發(fā)揚(yáng)我們的探索精神去探索源碼了边器。

在流異常或者網(wǎng)絡(luò)異常會打印?onError?日志托修,所以找到了這個(gè)方法忘巧,這下就簡單了重寫這個(gè)方法就行了

默認(rèn)播放上下有一個(gè)工具欄,在3秒后會自動隱藏睦刃,可是我們不需要自動隱藏可以重寫這個(gè)方法

可以通過代碼的方式自動開始播放袋坑,如果在播放就暫停播放

jcVideoPlayer.startButton.performClick();

默認(rèn)的 JieCaoVideoPlayer 還支持重力感應(yīng)進(jìn)入全屏,只需要在 Activity 中加入如下代碼:

JieCaoVideoPlayer?還支持浮層小窗播放眯勾,能在?ListView枣宫、ViewPager?和?Fragment?等多重嵌套模式下全屏工作,源碼的類大部分方法都是public需要什么重寫就行了吃环。

使用

在Acitivity中生命周期中加入對播放器的管理:

還可以添加 UserAction 對播放器的各種狀態(tài)監(jiān)聽

最后效果如下:


demo 中的直播流不太穩(wěn)定大家可以替換成自己覺得穩(wěn)定的直播流也颤,或者換成一個(gè)視頻也可以。有什么問題歡迎交流郁轻!

本文項(xiàng)目地址:

https://github.com/Hemumu/HLiveDemo/tree/master


完翅娶。。好唯。竭沫。。骑篙。蜕提。。靶端。谎势。。杨名。脏榆。。台谍。须喂。。。坞生。仔役。。

文章原創(chuàng)作者GuoLin 書籍推薦

郭林大神原創(chuàng)android 書籍:《第一行代碼 android》

淘寶鏈接: https://s.click.taobao.com/t?e=m%3D2%26s%3DgKUfuKdAZKocQipKwQzePOeEDrYVVa64K7Vc7tFgwiHjf2vlNIV67p2n%2BQBNMyE6Rku8%2Bpj6eJall3bs%2B3NRhNHnsKI%2BqxhyM0iVZhTFBom4YIorMPnmg8G0g2OJi%2FzmXHfenomYtn5EW9vzeG8LzfPUwktUBEmkxg5p7bh%2BFbQ%3D&pvid=10_106.6.161.154_3367_1490163222155

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恨胚,一起剝皮案震驚了整個(gè)濱河市骂因,隨后出現(xiàn)的幾起案子炎咖,更是在濱河造成了極大的恐慌赃泡,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乘盼,死亡現(xiàn)場離奇詭異升熊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)绸栅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門级野,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人粹胯,你說我怎么就攤上這事蓖柔。” “怎么了风纠?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵况鸣,是天一觀的道長。 經(jīng)常有香客問我竹观,道長镐捧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任臭增,我火速辦了婚禮懂酱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘誊抛。我一直安慰自己列牺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布拗窃。 她就那樣靜靜地躺著昔园,像睡著了一般。 火紅的嫁衣襯著肌膚如雪并炮。 梳的紋絲不亂的頭發(fā)上默刚,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機(jī)與錄音逃魄,去河邊找鬼荤西。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的邪锌。 我是一名探鬼主播勉躺,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼觅丰!你這毒婦竟也來了饵溅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤妇萄,失蹤者是張志新(化名)和其女友劉穎蜕企,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冠句,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轻掩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了懦底。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唇牧。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖聚唐,靈堂內(nèi)的尸體忽然破棺而出丐重,到底是詐尸還是另有隱情,我是刑警寧澤杆查,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布扮惦,位于F島的核電站,受9級特大地震影響根灯,放射性物質(zhì)發(fā)生泄漏径缅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一烙肺、第九天 我趴在偏房一處隱蔽的房頂上張望纳猪。 院中可真熱鬧,春花似錦桃笙、人聲如沸氏堤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鼠锈。三九已至,卻和暖如春星著,著一層夾襖步出監(jiān)牢的瞬間购笆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工虚循, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留同欠,地道東北人样傍。 一個(gè)月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像铺遂,于是被迫代替她去往敵國和親衫哥。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

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