描述
规范: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
- 输入您的电脑密码并按回车键
- 重启 Chrome
(!) 即使只请求一个来源也会发生。
帮助
这似乎是很久以前向 Google 提出的一个大问题,但仍未解决。有人面对过吗?有什么办法可以用 JavaScript 或其他方式解决这个问题吗?
编辑 1
它也可以在 https://apprtc.appspot.com/ 重现。和任何其他 webrtc 网站。
编辑2
似乎是 WebRTC 错误:
最佳答案
这是我的 .profile
中的一个脚本,可以解决这个问题:
alias fixcam="sudo kill -9 `pgrep VDCAssistant`; sudo killall coreaudiod"
然后我就从终端运行fixcam
。如果将上述命令添加到 .profile
,则需要打开一个新的终端窗口或运行 source ~/.profile
以重新加载配置。
看起来该错误已被隔离到 coreaudiod
处于不良状态。我还没有测试过只重启 coreaudiod
但它也可能会起作用。
关于javascript - WebRTC Chrome 麦克风不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33548517/