你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

CreateView 超时

当调用 SDK 需要接收视频帧但没有传入的视频帧时,SDK 将检测到此问题并引发 createView 超时错误。

从 SDK 的角度来看,此错误是意料之外的。 此错误表示信号传输与媒体传输之间存在差异。

如何使用 SDK 进行检测

出现 create view timeout 问题时,createView API 将引发错误。

错误 详细信息
code 408(请求超时)
子代码 43203
message 无法呈现流,超时
resultCategories 意外

createView 超时失败的原因以及缓解此问题的方法

视频发送方的浏览器位于后台

当浏览器处于后台或用户锁定屏幕时,某些移动设备不会发送任何视频帧。 createView API 检测到没有任何传入的视频帧,并将这种情况视为订阅失败,因此会引发 createView 超时错误。 由于目前 SDK 不支持通知接收方发送方的浏览器处于后台,因此无法提供详细信息。

应用程序可以实现自己的检测机制,并在发送方的浏览器返回到前台时通知通话中的参与者。 参与者可以再次订阅视频。 处理此 createView 超时错误的一个可行但不够巧妙的方法是持续重试调用 createView API 直到成功。

视频发送方意外地退出了通话

某些用户可能会通过终止浏览器进程而不是挂断电话来结束通话。 在 40 秒超时结束之前,服务器不知道用户退出了通话。 参与者将保留在名单列表中,直到服务器在超时(40 秒)结束时将其删除。 如果其他参与者尝试订阅意外退出通话的用户的视频,由于未收到任何传入的视频帧,他们会收到错误。 没有提供进一步的详细信息。 即使没有从参与者那里收到回复,服务器也会将其保留在名单列表中,直到超时期限结束。

视频发送方存在网络问题

如果视频发送方在其他参与者订阅其视频时出现网络问题,则订阅可能会失败。 此错误对于视频接收方来说是意料之外的。 例如,如果发送方遇到临时网络断开连接,则其他参与者无法从发送方接收视频帧。

处理此 createView 超时错误的解决方法是,在发生此网络事件时,持续重试调用 createView API,直到成功。

视频接收方存在网络问题

与发送方的网络问题类似,如果视频接收方存在网络问题,视频订阅可能会失败。 此问题可能是由于数据包丢失率高或临时网络连接错误导致的。 SDK 可以检测到网络连接断开,并触发 networkReconnect UFD 事件。 但是,在 WebRTC 通话中,如果在大约 10-15 秒内没有来自对方的响应,则默认 STUN connectivity check 会触发断开连接事件。

这意味着,如果出现 networkReconnect UFD,则接收方可能已经 15 秒没有收到数据包了。

如果接收方的连接存在网络问题,应用程序应在恢复 networkReconnect UFD 后订阅视频。 对网络问题的控制可能有限。 因此,我们建议监视网络信息,并在用户界面显示有关信息。 还应考虑监视客户端媒体质量和网络状态,并根据需要对客户端进行必要的更改。 例如,当你注意到客户端的网络性能下降时,你可能会考虑自动关闭传入的视频流。