You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebRTC多人视频通话PC端正常,iPhone(iOS Safari)发起时接收方无法看到彼此画面的问题求助

WebRTC多人视频通话PC端正常,iPhone(iOS Safari)发起时接收方无法看到彼此画面的问题求助

各位好,我最近做了一个基于WebRTC、Knockout.js和SignalR的多人视频通话应用,PC端各种场景都跑的很顺畅,多个用户互相通话完全没问题,但一到用iPhone的iOS Safari发起通话就出怪事了!

具体问题是这样的:当用iPhone(iOS Safari)发起通话时,所有接收方的视频容器确实能被正常添加,但画面全是空白的——只有发起者(也就是用iPhone的我)能看到所有人的视频流,其他接收方之间完全看不到彼此的画面,只能看到发起者的。

举两个实际测试的例子:

  • 正常场景:用我的笔记本电脑给iPhone 1和iPhone 2发起通话,不管是电脑看手机,还是手机之间互相看,所有画面都正常显示,完全没毛病
  • 异常场景:用iPhone 1或者iPhone 2给我的笔记本和另一台iPhone发起通话,发起者能正常看到所有人的画面,但笔记本和另一台iPhone之间互相看不到对方的画面,只能看到发起者的

下面是我目前的部分代码片段:

import * as ko from "knockout";
import * as signalR from "@microsoft/signalr";
import { Modal } from "bootstrap";

let receiverUserIds: string[] = [];

async function getUserMedia() {
  try {
    return await navigator.mediaDevices.getUserMedia({
      video: true,
      audio: true,
    });
  } catch (error) {
    // 这里省略了部分错误处理代码
  }
}

我自己怀疑是不是iOS Safari在WebRTC的信令处理或者媒体流转发上有什么特殊的限制?比如ICE候选的收集、SDP的处理有没有和Chrome/Edge这些桌面浏览器不一样的地方?有没有大佬遇到过类似的问题,或者能给我一些排查的思路?

备注:内容来源于stack exchange,提问作者user27731575

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:04:29