Почему getUserMedia выдает [объект NavigatorUserMediaError], когда я нажимаю «Разрешить» в Chrome?
Недавно я начал получать ошибки при попытке получить доступ к клиентуМикрофон через мой сайт. Когда 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. Я получаю к нему доступ, набрав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}