10

最近,我在尝试通过我的网站访问客户的麦克风时开始出现错误。当 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}
4

4 回答 4

6

** 一次一个浏览器 **

我在打开多个浏览器进行测试时遇到了这种情况。似乎一次只有一个浏览器可以访问媒体。

即,当我在 Chrome 中打开我的页面,并且视频/音频工作时,Firefox 将无法工作,而当我在 Firefox 中使其工作时,Chrome 将无法工作。

于 2014-04-28T11:14:04.750 回答
3

这可能在两种情况下发生,我在 Ubuntu 12.04 中都经历过:

  • 您单击了一次拒绝,然后浏览器保存该设置,当被要求在该页面中访问媒体时总是返回错误。(当您从浏览器收到问题时,这似乎不是您的情况,但您只需转到地址栏,单击相机图标并更改选项以再次询问)。

  • 您的浏览器无法访问媒体设备,并且与任何没有摄像头或麦克风的计算机一样,即使您按允许,您也会收到错误事件,因为它无法为您提供任何流。尝试检查浏览器设置,看看您是否可以选择所选的相机。我经历过这个,列表是空的。为了解决这个问题,我不得不重新启动机器,Chrome 再次开始显示设备列表。

于 2013-07-23T11:54:19.893 回答
1

NavigatorUserMediaError {代码:1,PERMISSION_DENIED:1}

这意味着您的浏览器设置不允许您访问相机。进入您的浏览器设置 -> 在网站设置下,您会找到已阻止访问您的设备的网页列表。

于 2015-10-21T05:01:38.140 回答
0

getUserMedia 仅适用于 https;localhost 也不例外(即http://localhost)。Safari 似乎也不允许从 iFrame 中获取用户媒体。我总是收到“尝试从安全来源与其顶级框架不同的文档调用 getUserMedia”错误。这使得使用像 codepen 和 jsfiddle 这样的网站是不可能的。

更多细节https://webrtchacks.com/safari-webrtc/

于 2018-01-05T13:28:34.500 回答