Skip to content

networkChange

shixuemei edited this page May 25, 2017 · 7 revisions

网络变化

在实际播放过程中,设备网络会不可避免的发生变化,由此导致出现播放进入缓冲,播放结束等影响用户体验的现象。针对这种情况,给出以下建议,供APP开发参考。

一、 网络变化行为

通常的变化类型分为以下几种:

  • wifi A切换到wifi B
  • wifi切换到3G/4G
  • 3G/4G切换到wifi,且关闭3G/4G
  • 3G/4G切换到wifi,未关闭3G/4G
  • 短时间断网后又重连上

二、 处理方法

  • 在1、2、3这三种情况下,由于网络发生了变换,播放SDK内部拉流使用的原有连接失效,此时画面停止,如果不及时通知播放器采取重连机制,则播放SDK会一直等待读超时(具体时间可通过setTimeout配置)后上报播放结束。建议APP检测到网络发生以上情况时,立刻触发播放器立刻进行重连,提升用户体验

  • 第4种情况,开始播放时使用的是3G/4G,打开wifi后,由于没有关闭3G/4G,此时播放正常,也就是在这种情况下,播放SDK依然使用的是3G/4G的网络。如果APP不希望用户由此产生高额的流量费用,建议及时触发播放器进行重连

  • 第5种情况,如果断网时间小于读超时时间,播放器会自动恢复播放(前提是断网期间不可以有seek动作);如果断网时间大于读超时时间,播放器会在超时结束后上报播放结束消息。APP可根据实际业务情况进行处理

三、 重连方法

1. 直播

直播场景下可直接使用reload方法进行重连

2. 点播

在点播场景下,重连后应从切换网络前停止播放的时间点开始播放,此时建议通过一个播放实例使用点播续播功能来完成重连

四、 网络连通性判断

v2.1.1及以上版本支持

4.1 相关方法

  • 探测网络连通性使用的地址networkDetectURL,默认为www.kingsoft.com。支持用户自定义,自定义的地址需为真实有效的网络地址;如果设置为nil,则表示不需要开启网络连通性的探测
@property (nonatomic, readwrite) NSString* networkDetectURL;
  • 网络连通状态networkStatus。如果该值为不等于KSYNetworkStatus枚举中的任意值,则表明当前尚未监测到网络状态;或者是networkDetectURL设置为了nil
@property (nonatomic, readonly) KSYNetworkStatus networkStatus;
  • 网络连通状态发送变化时发送的通知
MPMoviePlayerNetworkStatusChangeNotification

4.2 注意事项

Clone this wiki locally