快捷搜索: 王者荣耀 脱发

安卓TV开发之实现原生播放器

安卓有很多第三方的播放器,比如最强大的ijkPlayer和最全能的Vitamio播放器,如果是手机APP开发,可以直接拿过来用。但是TV APP开发不行,因为电视盒子的高定制性,兼容性很差,比手机上差很多,这个是我在20+盒子上测试的结果。这中间各种调试,各种参数修改,按下葫芦浮起瓢,经历了无数的噩梦。

最后,不得已,只好抱着试一试的态度,实现原生的播放器。结果在所有盒子上,完美适配,简直了。后来才知道,盒子里的芯片在视频播放这块做了修改和增强,所以调用系统原生API实现的播放器反而兼容性更好。

其实实现原生的播放器并不难,VideoView和MediaPlayer+SurfaceView这两中方式都可以。VideoView实现更简单,MediaPlayer+SurfaceView功能更强大,这里选择后者。

虽然调用系统API实现原生播放器来播放一个视频很简单,但是一个离比较完善的播放器还是很远。除了基本的播放,还有显示很多信息,包括当前播放时间,总时间,播放进度条,缓冲进度条,播放/暂停,快进/快退,已经最后的封装等。还有其他细节,比如加载视频前几秒最好不要快进/快退操作,进度条隐藏/显示的控制。

先看实现效果:

工程结构比较简单,只有一个主类调用工具类。核心目录如下:

经验分享 程序员 微信小程序 职场和发展