WebRTC Chrome麦克风无法正常工作

时间:2015-11-05 15:26:57

标签: javascript google-chrome webrtc microphone

描述

规格:Chrome版本44,45,46,包括Win,Mac和Linux。

已采取的措施:

  1. 第一个来源:通过getUserMedia授予的相机和麦克风
  2. 第二个来源:麦克风仅通过getUserMedia授予
  3. 两个源都存储在JS对象
  4. 使用WebAudio检查音量级别(达到峰值级别超过5秒)3)WebRTC调用
  5. 在第一个来源中建立
  6. 症状:

    1. 音量级别被检测为0
    2. 在WebRTC通话中,一位用户没有听到Chrome用户
    3. 预期行为:

        检测到
      1. 音量级别高于0
      2. 在WebRTC呼叫中,两个用户互相听到
      3. 严重程度:经常,但并非总是如此。似乎与特定用户无关,它与任何用户每天都会发生。

        (!)可以通过重新启动Chrome来暂时修复

        (!) 有时可以在Mac上临时修复(直到重启):

        1. 转到Mac应用程序>公用事业>终端
        2. 复制并粘贴此命令,然后按Enter:sudo killall VDCAssistant
        3. 输入您的计算机密码,然后按Enter键
        4. 重新启动Chrome
        5. (!)即使只有一个请求的来源也发生了。

          帮助

          这似乎是很久以前针对谷歌的一个大问题,但仍未解决。有人面对过吗?有没有办法在JavaScript或其他方面解决这个问题?

          编辑1

          它也可以在https://apprtc.appspot.com/和任何其他webrtc网站上重现。

          编辑2

          好像是WebRTC错误:

1 个答案:

答案 0 :(得分:1)

以下是我.profile中将解决此问题的脚本:

alias fixcam="sudo kill -9 `pgrep VDCAssistant`; sudo killall coreaudiod"

然后我从终端运行fixcam。如果您将以上命令添加到.profile,则需要打开新的终端窗口或运行source ~/.profile以重新加载配置。

看起来这个bug已被隔离到coreaudiod处于不良状态。我还没有测试过只重新启动coreaudiod,但它也可能会起作用。