近期,我们升级了直播云的服务,开始支持网络断线自动恢复直播的功能。当启用此功能后,如果客户端在遇到网络异常的情况时,客户端会自动重连直播云,并尝试恢复直播,在恢复过程中,直播客户端会看到播放器在缓冲状态,直播画面卡在那里,一旦恢复成功,播放端可以继续播放当前的直播视频。无论中间网络断开几次,直播正常结束后,都是生成一个点播文件。如果客户端不是在直播过程中断线,则客户端不会自动重连服务器,而是收到网络断线回调。

启用了自动恢复的功能后将大大提高用户体验,因此默认情况下支持断线重连的客户端就是启用此功能的。在网络异常发生后,直播云检测到客户端连接已经断开,会等待客户端的重连,此等待时间由客户端控制,最大不超过2分钟,客户端可调用setResumeLiveTimeout(iOS SDKsetResumeLiveTimeout)来设置等待超时,如果将超时时间设置为0表示禁用直播恢复的功能。

针对此功能,直播云和客户端同时增加了几个回调: 直播云增加了两个回调通知,一个是当检测到客户端断线后的回调,一个是直播恢复成功后的回调。客户可以在控制台设置一个直播恢复通知回调地址,尝试恢复和恢复成功都调用同一个地址,type都为15,接收回调的接口可以根据status判断,如果status=0表明直播云刚刚检测到客户端断线,等待客户端重连,status=1表明客户端已经重连上,直播恢复成功。 客户端SDK增加了onTryResumeLive(iOS SDKdoTryResumeLive)回调,表明正在尝试重连服务器恢复直播, onResumeOk(iOS SDKdidResumeLiveOk)回调表明直播恢复成功,onResumeFail(iOS SDKdidResumeLiveFail)表明直播恢复失败。失败的原因一般是网络恢复太慢超过了直播云服务器的等待时间。

目前只有使用直播云提供的android和iOS平台的sdk开发的客户端支持自动直播恢复功能,使用rtmp协议推流的客户端不支持直播恢复。

支持的自动直播恢复的客户端sdk版本号分别为 android sdk 458, iOS sdk 4.1.1,这两个客户端版本将在近期发布。