normandie为何不碰videoview

normandie是一套播放框架及其实现,而且90%的接口与android mediaplayer一致,包括生命周期状态机的实现等等。方便原来android框架的开发者迁移。html

在android上作音视频开发的同窗应该比较清楚,除了mediaplayer,android还提供了其它播放音视频的类,好比视频播放的还有videoview。
normandie在设计之初,就没有打算实现相似videoview这样的类。
videoview的优势是接口更简单,但它的缺点也是接口太简单,这里简单的意思是不够灵活。android

音视频播放尤为是在线音视频播放的状况更为复杂,mediaplayer能够为开发者提供更为灵活的接口,更贴近底层框架的能力,让开发者去发挥,videoview大大的限制了开发者能够利用底层框架的能力。api

下图是mediaplayer的状态机,设计的比较灵活
https://developer.android.com...
clipboard.png框架

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

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

1.开发者能够基于normandie的mediaplayer api本身根据须要定制,videoview,baseplayerview均可以。
2.有开发者这么作了,而且将这个定制提供给其它业务使用,扩大了normandie的覆盖范围。可是以后随着一些业务的发展,这个定制就出现了以前提到的相似videoview不能知足业务需求的问题。
举两个例子:
(1).相似videoview的定制不容易实现预加载,由于它提供的接口不能让开发者知道更多状态信息。
预加载:同时多个palyer进行加载,但只有一个在前台播放。
(2).开发者想关心,拉取的内容的一些信息,好比分辨率等,相似videoview定制没有接口能够作。设计

有时候少便是多。orm

相关文章
相关标签/搜索