为什么getUserMedia在我点击“”时抛出[object NavigatorUserMediaError];允许“
Why is getUserMedia throwing a [object NavigatorUserMediaError] when I click "Allow" in 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在本地托管web代码。我通过在web浏览器中键入localhost:8080/my-program
来访问它。
编辑:错误发生后,chrome地址栏中会显示一个摄像头的图标,表示chrome正在访问我的麦克风,并列出两个可能的麦克风,"默认"answers"内置音频模拟立体声"
编辑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}
**一次一个浏览器**
当我在多个浏览器打开的情况下进行测试时,我遇到过这种情况。看起来一次只有一个浏览器可以访问媒体。
ie当我在Chrome中打开页面,视频/音频正常工作时,Firefox将无法工作,当我在Firefox中打开页面时,Chrome将无法工作。
这可能发生在两种情况下,我在Ubuntu 12.04:中都经历过
-
您单击了一次"拒绝",然后浏览器保存该设置,当被要求访问该页面中的媒体时,总是返回错误。(当你从浏览器中收到问题时,情况似乎并非如此,但你只需转到地址栏,单击相机图标,然后更改选项即可再次提问)。
-
您的浏览器无法访问媒体设备,就像在任何没有摄像头或麦克风的计算机中一样,即使您按"允许",也会收到错误事件,因为它无法为您提供任何流。尝试检查浏览器设置,看看是否可以选择所选相机。我经历过这种情况,但列表是空的。为了解决这个问题,我不得不重新启动机器,Chrome开始再次显示设备列表。
NavigatorUserMediaError{code:1,PERMISSION_DENIED:1}
这意味着您的浏览器设置不允许您访问相机。进入浏览器设置->在网站设置下,您会发现一个您已阻止访问设备的网页列表。
getUserMedia仅适用于https;本地主机(即http://localhost)。Safari似乎也不允许在iFrame中使用getUserMedia。我总是收到一个"试图从一个与顶级框架不同的安全来源的文档调用getUserMedia"错误。这使得像codepen和jsfiddle这样的网站无法使用。
更多详细信息https://webrtchacks.com/safari-webrtc/
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 有没有一种方法可以列出Ember.Object的所有绑定
- 如何取消object.prototypes javascript的一个函数
- 为什么是文档.旧版应用程序中的DOM-object.properties为null
- 将*.js文件的内容放入Object中
- Object.prototype using 'this'
- 使用Object.create()的角度服务继承
- 如何使用object.assign()从其他对象引用基本对象属性
- 循环的数组推入在Object容器中具有不同的值
- reducers在redux中得到Function not Object,what'it’他错了
- JSON.stringify和Object.keys在同一个对象上产生不同的结果
- 在使用object.create创建的对象中使用super
- Join架构验证:Join.object定义数组中的有效键
- jquery打印[object XMLDocument]而不是文件内容
- ExtJS 4 Object.prototype fail
- JavaScript-从对象数组中输出随机OBJECT
- 为什么“{}+1”在Chrome和Firefox中排名第一,而字符串'[object object]1'
- 什么是“;原型;通过JavaScript中的Object Literal Notation创建的对象的链接
- 如何在Node.js控制台中发现Object API