我的目的是根据用户的浏览器权限向用户显示正确的消息,即。如果尚未授予权限,则显示“允许访问”之类的内容,如果已提供权限,则根本不显示用户反馈。
但是使用 navigator.mediaDevices.getUserMedia(),仅取决于承诺的成功或失败,我才能知道状态。这会导致消息(允许访问消息)显示一小段时间,这不太好。
message.info("Please allow access");
navigator.mediaDevices.getUserMedia(constraints).then((stream)=> {
console.log("received accesss");
}).catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我正在使用 React,但任何库的问题都是一样的。此外,navigators.permissions API 仍处于实验阶段,Safari 不支持,因此需要跨浏览器的方式来解决此问题。提前致谢。