这是我参加【第四届青训营】笔记创作活动第13天
Android VideoView多媒体播放控件
这是androidx.media2.widget.VideoView包下的View。使用此控件一般可能用到SessionPlayer或者MediaController类,还有一个显示在videoview控件上的控件MediaControlView,一些控制按钮。
使用
在使用sessionplayer的时候需要实例化一个player,继承sessionplayer,videoview通过setPlayer方法设置sessionplayer。
更多使用mediaController类使用方法和sessionplayer类似,videoview通过setMediaController方法设置实例化的MediaController。
MediaControlView是videoview自带的默认控件,如果需要自定义MediaControllView也可以通过继承MediaControlView,
实例化MediaControlView对象后通过videoview中的setMediaControlView方法设置.如果不需要MediaControlView控件则能通过在xml文件布局中设置enableControlView="false"属性,禁用按钮控件。
videoview控件提供两种播放类型SurfaceView和TextureView,默认情况是SurfaceView,但是videoview提供了setViewType方法设置播放的类型。
两种播放的类型区别在于,SurfaceView节省资源,而TextureView支持各种ui动画还有属性动画等。
在videoview中嵌套了一个OnViewTypeChangedListener接口,在更改视图类型的时候会调用此接口。
公共方法
通过getMediaControlView方法可以获取videoview正在使用MediaControlView对象;
getViewType方法获取正在使用播放的类型;
setMediaController方法为videoview设置MediaController,第二个参数为一个长整型参数。
setOnViewTypeChangedListener方法设置videoview类型改变监听接口。
setPlayer方法设置SessionPlayer对象,设置video view的具体内容展示;
setViewType设置播放类型SurfaceView和TextureView类型。
MediaControlView
MediaControlView是包含MediaController或者SessionPlayer的控件。
他提供了广泛的按钮,包括一些基本的播放控制按钮,播放、暂停、快进、进度拖动、播放速度、字幕选择等等。使用的时候通过配合VideoView使用。
其中的按钮控件对应的SessionCommand需要包含在活动的SessionCommandGroup中才能显示。
公共方法
MediaControlView中的公共方法,onTouchEvent控件触摸监听;
onTrackballEvent轨迹球事件;
setMediaController设置MedidaController对象;
setOnFullScreenListener方法设置OnFullScreenListener监听实例,OnFullScreenlistener接口是定义在MediaControlView类中的内部接口,当全屏播放的时候调用此接口;
setPlayer方法设置SessionPlayer实例对象。
标题:VideoView | Android Developers