繁体   English   中英

getUserMedia() 允许用户继续,即使权限被拒绝

[英]getUserMedia() allow user to continue even if permission is denied

我的示例 getUserMedia() 请求相机和麦克风的许可。

let constraints = { audio: true, video: true };

navigator.mediaDevices.getUserMedia(constraints).then(stream => {
    // Do stuff
}).catch(e => alert(`getUserMedia error ${e.name}`))

如果用户不接受相机和/或麦克风权限请求,我会按预期收到警报错误。

是否仍然可以要求音频和视频,但如果用户拒绝,那么他们的设备将不会被使用,但仍然允许用户浏览网站?

谢谢你。

如果您希望您的代码在任何一种情况下都能运行,那么您必须以某种方式拆分和重新排列您的代码,以便您可以运行它。

如果用户接受 stream,则 go 与doStuffWithStream ,如果没有,则调用doStuffWithoutStream

如果在这两种情况下都需要发生某些事情,那么您可以使用finally方法在这两种情况下运行代码。

function doStuffWithStream(stream) {
  // Do stuff with stream.
}

function doStuffWithoutStream() {
  // Do stuff without stream.
}

function doStuffEitherWay() {
  // Do stuff in both cases.
}

let constraints = { audio: true, video: true };

navigator.mediaDevices.getUserMedia(constraints).then(stream => {
  doStuffWithStream(stream);
}).catch(e => {
  alert(`getUserMedia error ${e.name}`);
  doStuffWithoutStream();
}).finally(() => {
  doStuffEitherWay();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM