安卓有很多第三方的播放器,比如最強大的ijkPlayer和最全能的Vitamio播放器,如果是手機APP開發,可以直接拿過來用。但是TV APP開發不行,因爲電視盒子的高定製性,兼容性很差,比手機上差很多,這個是我在20+盒子上測試的結果。這中間各種調試,各種參數修改,按下葫蘆浮起瓢,經歷了無數的噩夢。
最後,不得已,只好抱着試一試的態度,實現原生的播放器。結果在所有盒子上,完美適配,簡直了。後來才知道,盒子裏的芯片在視頻播放這塊做了修改和增強,所以調用系統原生API實現的播放器反而兼容性更好。
其實實現原生的播放器並不難,VideoView和MediaPlayer+SurfaceView這兩中方式都可以。VideoView實現更簡單,MediaPlayer+SurfaceView功能更強大,這裏選擇後者。
雖然調用系統API實現原生播放器來播放一個視頻很簡單,但是一個離比較完善的播放器還是很遠。除了基本的播放,還有顯示很多信息,包括當前播放時間,總時間,播放進度條,緩衝進度條,播放/暫停,快進/快退,已經最後的封裝等。還有其他細節,比如加載視頻前幾秒最好不要快進/快退操作,進度條隱藏/顯示的控制。
先看實現效果:
工程結構比較簡單,只有一個主類調用工具類。核心目錄如下:
源碼地址:
https://download.csdn.net/download/zhangxiangliang2/10679353