Page History

Video_view_demo

Last edited by 谷俊

VideoView的示例

详细使用见demo下VideoViewActivity.

注:此VideoView 是对MediaPlayer和SurfaceView 的封装,所以不需要使用设置Surface相关的方法

1、创建播放器

videoView = (VideoView) findViewById(R.id.videoview);

2、设置监听

videoView. setOnPreparedListener();
videoView. setOnCompletionListener();
videoView.setOnBufferingUpdateListener();
videoView. setOnSeekCompleteListener();
videoView.setOnVideoSizeChangedListener();
videoView. setOnErrorListener();
videoView. setOnInfoListener();
videoView. setOnPlayStateListener();

3、下面以setOnPreparedListener为例

videoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(IMediaPlayer mediaplayer) {
        mediaplayer.start();
    }
});

4、设置播放信息

4.1 根据地址进行播放

String mVideoUrl = "http://xxxxx"; // mVideoUrl 为视频的播放地址
videoView.setDataSource(mVideoUrl);

4.2 根据视讯云视频id进行播放

videoView.setDataSource(iDataSource); 
//具体适用详见demo
videoView.setDataSource(iActivityDataSource); 
//具体适用详见demo

5、VideoView主要方法

除了以下方法其余方法定义详见MediaPlayer的主要方法

setDataSource(IDataSource iDataSource);
参数:iDataSource 包含视频id,视频类型,视频码率
功能:当使用视讯云视频id进行播放时,使用此方法设置播放信息

setDataSource(IActivityDataSource iActivityDataSource);
参数:iActivityDataSource包含视频id,活动id,视频类型,视频码率
功能:当使用视讯云视频id进行播放时,使用此方法设置播放信息

void reload();
功能:只针对使用视讯云视频id进行播放时,使用此方法重新加载

6、开始播放

videoView.start();

7、停止播放

videoView.stop();

8、释放播放器

videoView.release();

9、Activity回调的生命周期

public class VideoViewActivity extends AppCompatActivity{

    @Override
    protected void onPause() {
        super.onPause();
        videoView.pause();
}

    @Override
    protected void onResume() {
        super.onResume();
        videoView.start();
}

    @Override
    protected void onDestroy() {
        super.onDestroy();
        videoView.release();
    }
}