音視頻開發(fā)|基礎概念解析|播放器ExoPlayer的數(shù)據(jù)供應商-MediaSource

播放器就是一個轉換裝置,輸入的是媒體數(shù)據(jù),輸出的是我們可以感知的聲音和畫面。

在ExoPlayer體系中蜘拉,MediaSource就是給播放器提供媒體數(shù)據(jù)的供應商(或者叫供給站)。

播放器工作時候有鹿,會從MediaSource中獲取當前需要播放的媒體片段-MediaPeriod。

MediaPeriod是ExoPlayer中可以獨立播放的媒體數(shù)據(jù)片段谎脯,對于本地媒體文件葱跋,MediaPeriod時間長度一般較長,甚至覆蓋了整個媒體文件;對于流媒體MediaPeriod娱俺,一般較短稍味,在2s-12s左右。

一個MediaPeriod至少包含一個SampleStream(樣本流)荠卷,樣本流是音視頻數(shù)據(jù)的基本單元模庐,指一段連續(xù)的音頻或者視頻數(shù)據(jù),一個視頻的MediaPeriod至少包含兩個SampleStream油宜,音頻至少一個(多種音效)掂碱,視頻一個。

播放流媒體時候慎冤,MediaSource就像一個發(fā)牌器疼燥,它源源不斷的向播放器發(fā)牌(數(shù)據(jù)片段),播放器拿到就把該牌展示出來蚁堤。

現(xiàn)在多媒體播放形式越來較豐富醉者,比如特定時間點插入廣告,用戶拖到特定時間開始播放(seek)披诗,這就要求我們的發(fā)牌器有能夠隨時插入牌和切牌的能力撬即。

面對越來越復雜的發(fā)牌要求,Timeline(時序線)出現(xiàn)了呈队,它是MediaSource中記錄發(fā)牌順序的數(shù)據(jù)結構剥槐,當然包含了著當前需要發(fā)的那一張牌的Id

MediaSource每次發(fā)牌的時候掂咒,會詢問Timeline該發(fā)哪一張了才沧,Timeline給出一個牌的Id,MediaSource就根據(jù)這個Id绍刮,去本地緩存或者網(wǎng)絡上獲取這張牌并把它發(fā)給播放器温圆。

Timeline表示了MediaSource的順序結構,當MediaSource數(shù)據(jù)結構改變的時候孩革,Timeline也會隨著改變岁歉。

那Timeline是如何知道一個媒體源的發(fā)牌順序呢?
這就是流媒體協(xié)議的定義了膝蜈,流媒體把一個音視頻切片成一個個小的片段锅移,并給這些小的片段按順序編上Id,然后把這個Id范圍和順序結構放到流媒體的媒體描述信息部分饱搏,TimeLine的實現(xiàn)類就是通過解析流媒體協(xié)議(Hls非剃、dash)的協(xié)議這部信息得到媒體播放順序的。

小結

MediaSource功能簡圖

如上圖MediaSource就是給播放器的媒體數(shù)據(jù)供應商推沸,它包含了兩個重要的功能機構:

  • 發(fā)牌決策機構-timeline:它根據(jù)流媒體媒體描述信息和人工的數(shù)據(jù)干預來制定好媒體片段的發(fā)送順序备绽;
  • 發(fā)牌流水線:根據(jù)決策結構提供的Id券坞,來獲取需要的媒體數(shù)據(jù)片段MediaPeriod,并把獲取到的數(shù)據(jù)交給播放器播放肺素。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恨锚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子倍靡,更是在濱河造成了極大的恐慌猴伶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塌西,死亡現(xiàn)場離奇詭異他挎,居然都是意外死亡,警方通過查閱死者的電腦和手機雨让,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門雇盖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人栖忠,你說我怎么就攤上這事崔挖。” “怎么了庵寞?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵狸相,是天一觀的道長。 經(jīng)常有香客問我捐川,道長脓鹃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任古沥,我火速辦了婚禮瘸右,結果婚禮上,老公的妹妹穿的比我還像新娘岩齿。我一直安慰自己太颤,他們只是感情好,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布盹沈。 她就那樣靜靜地躺著龄章,像睡著了一般。 火紅的嫁衣襯著肌膚如雪乞封。 梳的紋絲不亂的頭發(fā)上做裙,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音肃晚,去河邊找鬼锚贱。 笑死,一個胖子當著我的面吹牛关串,可吹牛的內(nèi)容都是我干的拧廊。 我是一名探鬼主播杂穷,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卦绣!你這毒婦竟也來了?” 一聲冷哼從身側響起飞蚓,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤滤港,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后趴拧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溅漾,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年著榴,在試婚紗的時候發(fā)現(xiàn)自己被綠了添履。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡脑又,死狀恐怖暮胧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情问麸,我是刑警寧澤往衷,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站严卖,受9級特大地震影響席舍,放射性物質發(fā)生泄漏。R本人自食惡果不足惜哮笆,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一来颤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧稠肘,春花似錦福铅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鲁冯,卻和暖如春拷沸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背薯演。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工撞芍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跨扮。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓序无,卻偏偏與公主長得像验毡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子帝嗡,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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