normandie爲什麼不做videoview

normandie是一套播放框架及其實現,並且90%的接口與android mediaplayer一致,包括生命週期狀態機的實現等等。方面原來android框架的開發者遷移。

在android上做音視頻開發的同學應該比較清楚,除了mediaplayer,android還提供了其它播放音視頻的類,比如視頻播放的還有videoview。
normandie在設計之初,就沒有打算實現類似videoview這樣的類。
videoview的優點是接口更簡單,但它的缺點也是接口太簡單,這裏簡單的意思是不夠靈活。

音視頻播放尤其是在線音視頻播放的情況更爲複雜,mediaplayer可以爲開發者提供更爲靈活的接口,更貼近底層框架的能力,讓開發者去發揮,videoview大大的限制了開發者可以利用底層框架的能力。

下圖是mediaplayer的狀態機,設計的比較靈活
https://developer.android.com...
clipboard.png

android mediaplayer
https://developer.android.com...

android videoview
https://developer.android.com...

1.開發者可以基於normandie的mediaplayer api自己根據需要定製,videoview,baseplayerview都可以。
2.有開發者這麼做了,並且將這個定製提供給其它業務使用,擴大了normandie的覆蓋範圍。但是之後隨着一些業務的發展,這個定製就出現了之前提到的類似videoview不能滿足也許需求的問題。
舉兩個例子:
(1).類似videoview的定製不容易實現預加載,因爲它提供的接口不能讓開發者知道更多狀態信息。
預加載:同時多個palyer進行加載,但只有一個在前臺播放。
(2).開發者想關心,拉取的內容的一些信息,比如分辨率等,類似videoview定製沒有接口可以做。

有時候少即是多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章