Skip to content

reconnectAndRestart

bohua edited this page Aug 30, 2016 · 9 revisions

使用场景

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

方法

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

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

softReset与reset方法具有相同的功能,但softReste方法优化了重连过程中的黑屏现象,推荐使用

SurfaceHolder mSurfaceHolder; // 在SurfaceChanged时保存SurfaceHolder

ksyMediaPlayer.softReset();
//ksyMediaPlayer.reset();
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