最近,我在尝试通过我的网站访问客户的麦克风时开始出现错误。当Chrome询问是否允许网站访问用户的麦克风时,[object NavigatorUserMediaError]
无论他们点击“允许”还是“拒绝”,都会产生。无论麦克风是否实际插入计算机(运行 Ubuntu 12.04),都会发生这种情况。
通过 Firefox 的进一步测试表明,这并不是 Chrome 特有的。在我完成实时输入演示并退出计算机后,问题才开始出现。我尝试制作一个访问麦克风的简单演示,但遇到了同样的问题。
var getVideo = false, getAudio = true;
navigator.getUserMedia || (navigator.getUserMedia = navigator.mozGetUserMedia ||
navigator.webkitGetUserMedia || navigator.msGetUserMedia);
function init() {
if(navigator.getUserMedia) {
navigator.getUserMedia({video:getVideo, audio:getAudio}, onSuccess, onError);
} else {
alert('getUserMedia failed.');
}
}
function onSuccess() {
console.log("Yay");
}
function onError(err) {
console.log("Noo " + err);
}
这是相当令人费解的,因为它一直工作得很好,直到我注销然后重新登录并尝试再次测试它。
我通过 Jetty 和 Eclipse 在本地托管 Web 代码。我通过输入来访问它localhost:8080/my-program
进入网络浏览器。
编辑:
发生错误后,Chrome 地址栏中会显示一个摄像头图标,表示 Chrome 正在访问我的麦克风,并列出两个可能的麦克风:“默认”和“内置音频模拟立体声”。
编辑2:
在尝试通过 webrtc 访问我的麦克风的其他网站上也会出现此错误。传统的 Flash 实现仍然有效。
Chrome 似乎在打开时定期抛出错误消息。
[361:362:0725/095320:ERROR:audio_output_device.cc(186)]
Not implemented reached in virtual void
media::AudioOutputDevice::OnStateChanged(media::AudioOutputIPCDelegate::State)
编辑3:
我能够进一步澄清错误消息
NavigatorUserMediaError {code: 1, PERMISSION_DENIED: 1}