【发布时间】:2015-11-05 15:26:57
【问题描述】:
说明
规格:Chrome 版本 44、45、46,包括 Win、Mac 和 Linux。
采取的行动:
- 第一个来源:通过 getUserMedia 授予的摄像头和麦克风
- 第二个来源:麦克风仅通过 getUserMedia 授予
- 两个来源都存储在 JS 对象中
- 使用 WebAudio 检查音量(在 5 秒内达到峰值)3) WebRTC 调用
- 在第一个来源中建立
症状:
- 音量级别检测为 0
- 在 WebRTC 通话中,一位用户听不到 Chrome 用户的声音
预期行为:
- 检测到音量高于0
- 在 WebRTC 通话中,两个用户都能听到对方的声音
严重性:经常,但并非总是如此。似乎与特定用户无关,它每天都会发生在任何用户身上。
(!)有时可以通过完全重启 Chrome 来临时修复。
(!)有时可以在 Mac 上临时修复(直到重新启动):
- 转到 Mac 应用程序 > 实用程序 > 终端
- 复制并粘贴此命令,然后按 Enter:sudo killall VDCAssistant
- 输入您的计算机密码并按 Enter 键
- 重启 Chrome
(!)即使只请求一个来源也会发生。
帮助
这似乎是很久以前向 Google 提出的一个大问题,但仍未解决。有人遇到过吗?有什么办法可以用 JavaScript 或其他方式解决这个问题?
编辑 1
它也可以在https://apprtc.appspot.com/ 和任何其他 webrtc 网站上重现。
编辑 2
好像是 WebRTC 的 bug:
【问题讨论】:
-
你试过没有webaudio吗?您仍然可以使用音频/视频元素控制播放音量。哪个是默认输入音频设备?
-
我没有尝试没有 webaudio。很难说哪一个是默认的,因为我无法访问客户的计算机。通常它是“内置”的。我可以控制播放,但我可以像这样控制麦克风输出音量吗?
-
在 Mac 和 Windows 中,您可以轻松找出哪个是默认设置。如果没有 webaudio,您将无法控制麦克风电平,并且更多的是增益。我个人认为,从用户体验的角度来看,远程各方应该能够自己控制音量。
-
问题不在于音量,而是一个错误,麦克风无法正常工作 - 它不会通过 webrtc 发送任何声音,也无法通过 webaudio 检测到。你确定你正确理解了这个问题吗?
-
如果我没记错的话,您正在打开一个 WebRTC 连接并选择了两个源(并且两者都使用相同的音频设备)您没有提到这是由一方完成的还是由两个不同的一方完成的(并且在两台不同的机器上或仅在一台机器上)。但是你说即使只有一个问题也是可以重现的。我从来没有遇到过这个问题,我使用的是不同的音频设备:内置麦克风、外置麦克风、线路输入、声卡线路输入、立体声混音等。你怎么知道音量是 0?您是否使用音频或视频标签并将流附加到它?
标签: javascript google-chrome webrtc microphone