WebRTC Chrome 麦克风无法正常工作
Posted
技术标签:
【中文标题】WebRTC Chrome 麦克风无法正常工作【英文标题】:WebRTC Chrome microphone not working 【发布时间】: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:
https://code.google.com/p/webrtc/issues/detail?id=4799 https://code.google.com/p/webrtc/issues/detail?id=5175【问题讨论】:
你试过没有webaudio吗?您仍然可以使用音频/视频元素控制播放音量。哪个是默认输入音频设备? 我没有尝试没有 webaudio。很难说哪一个是默认的,因为我无法访问客户的计算机。通常它是“内置”的。我可以控制播放,但我可以像这样控制麦克风输出音量吗? 在 Mac 和 Windows 中,您可以轻松找出哪个是默认设置。如果没有 webaudio,您将无法控制麦克风电平,并且更多的是增益。我个人认为,从用户体验的角度来看,远程各方应该能够自己控制音量。 问题不在于音量,而是一个错误,麦克风无法正常工作 - 它不会通过 webrtc 发送任何声音,也无法通过 webaudio 检测到。你确定你正确理解了这个问题吗? 如果我没记错的话,您正在打开一个 WebRTC 连接并选择了两个源(并且两者都使用相同的音频设备)您没有提到这是由一方完成的还是由两个不同的一方完成的(并且在两台不同的机器上或仅在一台机器上)。但是你说即使只有一个问题也是可以重现的。我从来没有遇到过这个问题,我使用的是不同的音频设备:内置麦克风、外置麦克风、线路输入、声卡线路输入、立体声混音等。你怎么知道音量是 0?您是否使用音频或视频标签并将流附加到它? 【参考方案1】:这是我在.profile
中的一个脚本,可以解决这个问题:
alias fixcam="sudo kill -9 `pgrep VDCAssistant`; sudo killall coreaudiod"
然后我从终端运行fixcam
。如果您将上述命令添加到您的.profile
,您将需要打开一个新的终端窗口或运行source ~/.profile
以重新加载配置。
看起来该错误已被隔离到 coreaudiod
处于不良状态。我还没有测试过只重启coreaudiod
,但它也可能会起作用。
【讨论】:
vdcassistant 用于“我的相机不再工作”的情况 @PhilippHancke 虽然那是用于相机的,但我也已经修复了麦克风(主要是在 Skype 没有正确释放控制的情况下)以上是关于WebRTC Chrome 麦克风无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章