-
Notifications
You must be signed in to change notification settings - Fork 146
reload
Franken Zeng edited this page Jul 27, 2017
·
17 revisions
reload功能可以实现在不销毁播放器的情况下,重新启动拉流。需要注意的是播放内部不会主动调用该方法,建议在发生如下场景时调用该方法:
- 当播放器调用方发现卡顿时,可以主动调用
- 当估计出更优质的拉流ip时,可以主动调用
- 当发生WiFi/3G网络切换时,可以主动调用
- 快速切换播放内容时,可以主动调用
- 接收到MPMoviePlayerSuggestReloadNotification消息时,可以主动调用
- 对是否清除缓冲区及加载模式无要求的情况下,建议使用该方法
- 该方法会默认清除上一次播放的缓冲区
- 该方法默认采用的加载方式为MPMovieReloadMode_Fast
- 对是否清除缓冲区有不同要求的情况下,建议使用该方法
- 如果reload前后的播放地址相同,建议将flush参数设置为NO,这样不清除缓冲区,可起到继续播放的效果;如果reload前后播放地址不同,建议将flush参数设置为YES,防止播放下个节目时出现上个节目的画面;APP开发可根据实际需要自行选择
- 该方法默认采用的加载方式为MPMovieReloadMode_Fast
- APP开发可根据实际情况自行选择reload时是否清除缓冲区以及加载模式
- 当APP监听到MPMoviePlayerSuggestReloadNotification通知时,请务必调用此方法,并将Mode设置为MPMovieReloadMode_Accurate重新加载码流
当前reload支持两种加载模式:
typedef NS_ENUM(NSUInteger, MPMovieReloadMode ) {
MPMovieReloadMode_Fast,
MPMovieReloadMode_Accurate,
};
- MPMovieReloadMode_Fast:快速模式,可加快起播速度,但在码流音视频交织较差的情况下,可能无法检测所有音视频流,造成播放时某路流的缺失
- MPMovieReloadMode_Accurate:精准模式,起播速度会比快速模式有所降低,但可以保证检测到所有音视频流,APP在监听到MPMoviePlayerSuggestReloadNotification通知时调用reload接口,需要将mode设置为精准模式
该方法通常用于直播场景,点播播放建议使用点播续播来完成重新加载的功能,直接使用该方法会从头开始播放
if (_player) {
[_player reload:_reloadUrl flush:FALSE];
}