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

iOS 15 Safari WebRTC音视频通话音量异常偏低问题咨询

iOS 15 WebRTC 扬声器音量过低/无输出问题修复

根因说明

iOS 15 对 Safari 内核的 WebRTC 音频路由策略做了修改:音视频通话场景下默认将音频输出通道绑定到听筒,同时取消了之前版本自动切换扬声器的逻辑,必须通过显式的代码配置才能强制输出到扬声器。

修复方案

  • 调整媒体流采集参数
    调用getUserMedia接口采集本地媒体流时,显式配置音频参数,避免iOS系统默认的音量压制:
const localStream = await navigator.mediaDevices.getUserMedia({
  audio: {
    echoCancellation: true,
    noiseSuppression: true,
    autoGainControl: false,
    sampleRate: 48000,
    channelCount: 2
  },
  video: true
})
  • 显式指定扬声器为输出设备
    iOS 15.4 及以上版本已支持setSinkId接口,可在绑定远程流到音频播放元素后,强制指定输出到扬声器:
const remoteAudio = document.createElement('audio')
remoteAudio.srcObject = remoteStream
// 强制绑定扬声器输出
await remoteAudio.setSinkId('speaker')
remoteAudio.play()
  • 低版本iOS 15兜底兼容
    对于15.4以下的iOS 15版本,可在用户主动触发通话的交互回调(比如点击通话按钮的click事件回调)中,先播放一段100ms的空白静音音频,触发Safari的音频输出权限后再初始化WebRTC连接,即可正常触发扬声器输出。

内容的提问来源于stack exchange,提问作者webrtcexpert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:24:02