RTCMultiConnection iOS 11 safari 音频/视频流问题

Posted

技术标签:

【中文标题】RTCMultiConnection iOS 11 safari 音频/视频流问题【英文标题】:RTCMultiConnection iOS 11 safari audio/video stream issue 【发布时间】:2018-02-02 22:20:05 【问题描述】:

我正在将 RTCMulticonnection 库用于 webrtc 视频流平台。它的功能很像这样:有一个用户列表,每个用户都有一个带有聊天按钮的个人资料页面。单击此聊天按钮后,呼叫者将进入聊天室页面(一个新的浏览器选项卡),在该页面中他发出 connection.open() 以创建聊天室。

然后聊天请求通过节点服务器发送给被调用者,被调用者得到一个确认弹出窗口。如果他接受,他将进入调用connection.join(roomId) 的聊天室页面(一个新标签)。

我的问题是,在 ipad/iphone 上,音频和视频流仅在第一次通话时添加,无论您是呼叫者还是被呼叫者。如果您之后想在 ipad 上呼叫其他人,则只会将音频流添加到聊天视图中,但从远程端您可以获得视频流就好了。

有没有在某处设置的标志,不知何故我错过了?

还有一些情况会导致 ios 设备严重冻结,因此需要硬重启,但我还没有确定罪魁祸首。

在台式机和安卓设备上,流程似乎运行良好......到目前为止。

【问题讨论】:

经过进一步调查:似乎在打开新选项卡并仅与麦克风连接后,如果我点击刷新并附加了新的套接字 ID,视频流就可以通过,但我仍然不知道问题出在哪里。 您使用的是 Angular 2+ 还是 zone.js? 【参考方案1】:

这是 WebKit 中的一个错误:

Safari on iOS11 Freezes when viewing a cropped remote video Frequent situations where iOS device locks up, requiring a hard reboot when consuming webrtc streams on IOS

自 iOS 11.2 起已解决。

【讨论】:

以上是关于RTCMultiConnection iOS 11 safari 音频/视频流问题的主要内容,如果未能解决你的问题,请参考以下文章

没有 <audio> 元素的 WebRTC 音频 (RTCMultiConnection)

IOS 的 RTCMultiConnection 演示 cordva

WebRTC 的音频可视化器

复杂的IF语句返回false

11.多重if

C++11 - enable_if - 类定义之外的函数实现