【问题标题】:WebRTC Chrome microphone not workingWebRTC Chrome 麦克风无法正常工作
【发布时间】:2015-11-05 15:26:57
【问题描述】:

说明

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

采取的行动:

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

症状:

  1. 音量级别检测为 0
  2. 在 WebRTC 通话中,一位用户听不到 Chrome 用户的声音

预期行为:

  1. 检测到音量高于0
  2. 在 WebRTC 通话中,两个用户都能听到对方的声音

严重性:经常,但并非总是如此。似乎与特定用户无关,它每天都会发生在任何用户身上。

(!)有时可以通过完全重启 Chrome 来临时修复。

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

  1. 转到 Mac 应用程序 > 实用程序 > 终端
  2. 复制并粘贴此命令,然后按 Enter:sudo killall VDCAssistant
  3. 输入您的计算机密码并按 Enter 键
  4. 重启 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


【解决方案1】:

这是我在.profile 中的一个脚本,可以解决这个问题:

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

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

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

【讨论】:

  • vdcassistant 用于“我的相机不再工作”的情况
  • @PhilippHancke 虽然那是用于相机的,但我也已经修复了麦克风(主要是在 Skype 没有正确释放控制的情况下)
猜你喜欢
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多