Skip to content

reconnectAndRestart

xinbaicheng edited this page Sep 5, 2016 · 9 revisions

使用场景

  1. onError或者onCompletion回调
  2. 播放一个新视频

方法

可根据实际情况选择使用以下方法

1.使用reload
2.重置播放器(重连)

需要注意的是,reload接口没有清屏的功能

清屏

在播放新的视频时,部分用户希望清除屏幕内容,屏幕变为黑屏
可以使用播放器提供的reset接口,具体例子如下所示:

SurfaceHolder mSurfaceHolder; // 在SurfaceChanged时保存SurfaceHolder

ksyMediaPlayer.reset();
ksyMediaPlayer.setDataSource(mUrl);
ksyMediaPlayer.prepareAsync();
ksyMediaPlayer.setDisplay(mSurfaceHolder); // 非常重要,reset之后需重新设置SurfaceHolder,播放器才能渲染

// 在onPrepared回调里
ksyMediaPlayer.start()

不清屏

部分用户只是重连,不需要清屏,可以使用播放器提供的softReset接口,例子如下所示:

SurfaceHolder mSurfaceHolder; // 在SurfaceChanged时保存SurfaceHolder

ksyMediaPlayer.softReset();

ksyMediaPlayer.setDataSource(mUrl);
ksyMediaPlayer.prepareAsync();
ksyMediaPlayer.setDisplay(mSurfaceHolder); // 非常重要,reset之后需重新设置SurfaceHolder,播放器才能渲染

// 在onPrepared回调里
ksyMediaPlayer.start()

3.播放新的视频

// 释放播放器
ksyMediaPlayer.release();
ksyMediaPlayer = null;

// 创建播放器
ksyMediaPlayer = KSYMediaPlayer.Builder(mContext).build();
ksyMediaPlayer.setDataSource(mUrl);
ksyMediaPlayer.prepareAsync();

// 在onPrepared回调里
ksyMediaPlayer.start()
Clone this wiki locally