gpt4 book ai didi

javascript - 如何监听由网络摄像头错误 : NotAllowedError 触发的全局事件

转载 作者:搜寻专家 更新时间:2023-11-01 04:34:39 30 4
gpt4 key购买 nike

我正在使用 ar.js,它使用用户网络摄像头并发出权限提示。我想要的是在用户允许或拒绝访问网络摄像头或之前已经这样做的情况下收听此对话触发的全局事件。

我试过像这样的全局听众:

 document.documentElement.addEventListener("error", e=>{console.log("GOT ERROR : ", e)})
window.addEventListener("error", e=>{console.log("GOT ERROR : ", e)});

WebRTC errors on MDN仅引用全局错误事件。

最佳答案

我不知道 ar.js 事件,也无法回答它是否有一些直接的方式来观察这个。

如果您正在寻求一种绕过它的方法,那么浏览器中就没有这样的全局事件。 NotAllowedError 来自调用 await navigator.mediaDevices.getUserMedia()

但是如果您大致知道提示用户的时间,那么您可以执行并行请求,like this :

// library
(async () => {
video.srcObject = await navigator.mediaDevices.getUserMedia({video: true});
})();

// us
(async () => {
try {
await navigator.mediaDevices.getUserMedia({video: true});
console.log("GOT CAM");
} catch (e) {
console.log("GOT ERROR : " + e);
}
})();

这应该会在不引起第二个用户提示的情况下为您提供所需的通知。

之所以有效,是因为规范要求 getUserMedia如果页面已经有摄像头流,则必须在不再次提示用户的情况下成功。

如果您不知道它何时会提示,那么您需要覆盖 navigator.mediaDevices 对象上的 getUserMedia 方法。各种图书馆,如 adapter.js如果您需要示例,请成功执行此操作。

关于javascript - 如何监听由网络摄像头错误 : NotAllowedError 触发的全局事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54595779/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com