-
Notifications
You must be signed in to change notification settings - Fork 246
reconnectAndRestart
xinbaicheng edited this page Mar 13, 2017
·
9 revisions
- onError或者onCompletion回调
- 播放一个新视频
可根据实际情况选择使用以下方法
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();
ksyMediaPlayer.setDisplay(mSurfaceHolder); // 非常重要,reset之后需重新设置SurfaceHolder,播放器才能渲染
// 在onPrepared回调里
ksyMediaPlayer.start()
1.收到MEDIA_INFO_SUGGEST_RELOAD事件时,需要请进reload行重连操作; 2.在直播过程中主播保持推流的情况下收到-1004(超时或IO错误)可进行重连。 3.其它错误-10002,-10004在保证有推流的情况下也可适当进行重连。