Android VideoView多媒体播放控件 | 青训营笔记

256 阅读2分钟

这是我参加【第四届青训营】笔记创作活动第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

网址:developer.android.google.cn/reference/a…