微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

网页版视频数据不是从 ipad Safari 发送的

如何解决网页版视频数据不是从 ipad Safari 发送的

我有一个使用基于 webrtc 的小型网络应用程序,最多可让 4 人看到/听到对方。在大多数情况下一切正常,除非涉及 ipad。以下是一些测试场景:

用户 1(Windows 上的 chrome)、用户 2(ipad 14、safari)、用户 3(MacOS、Safari)。用户 1 可以看到/听到并且被所有人看到/听到。用户 2 可以看到/听到所有内容,但用户 3 看不到(音频很好)。所有人都可以看到/听到用户 3。我记录了每个对等连接的统计信息,对于视频类型的出站 rtp,没有数据从用户 2 发送到用户 3(但音频发送正常,音频/视频发送到用户 1)。

如果用户 3 也切换到使用 iPad,现在用户 2 和 3 无法看到对方(这 2 个用户之间没有发送出站视频数据),但他们仍然可以听到对方的声音。

如果我们有 2 台 Windows/Chrome 机器和 1 台 iPad,一切都很好。

因此,似乎 iPad 不会将视频发送到另一个 Safari 实例(无论是 Mac 还是 Ipad),但可以正常发送音频,并且可以将音频和视频发送到 Chrome。所有信令状态都符合预期,所有对等连接状态都已完成,音频和视频轨道均按预期调用 ontrack。音频和视频捕获得很好(因为用户 1 看到/听到它们)。我不明白为什么视频数据没有从 ipad 发送到另一个 Safari。

有人遇到过这个问题或有什么建议吗?

解决方法

回答我自己的问题,以防其他人遇到这个问题。经过多次挖掘,我找到了让它工作的方法。

在我的应用中,视频渲染得非常小,所以我在 getUserMedia 中设置了视频约束宽度:160。调用本身运行良好(没有抛出异常)并且视频捕获正常,但由于某种原因它不会将该视频数据发送到其他 Safari 浏览器。我将其更改为 320,然后一切都开始工作了。 权衡当然是浪费带宽,但至少它是有效的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。