如何解决Google Chrome浏览器不允许选择要使用的相机
我正在开发一个流媒体网站。它可以工作,但是,有时我安装了一个称为OBS的软件,该软件安装了虚拟相机。从那时起,当网站尝试使用摄像机时,它将使用OBS虚拟摄像机,而不是我的物理摄像机。但这仅在我的PC中发生。使用相机时,将显示以下权限对话框:
这在我的笔记本电脑中有效,也就是说,在同一对话框中,它显示了一个组合框,允许您选择要使用的摄像机。
在网站上,我以这种方式启动相机:
navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
});
我可以使用getUserMedia函数做些什么,还是这个问题仅与PC配置有关?
解决方法
这与Google Chrome有关。假设OBS的deviceID保持不变,然后使用navigator.mediaDevices.enumerateDevices()
获取所有可用设备的列表。
(MDN的示例非常方便):
navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
devices.forEach(function(device) {
console.log(device.kind + ": " + device.label +
" id = " + device.deviceId);
});
})
.catch(function(err) {
console.log(err.name + ": " + err.message);
});
但是,如果您希望能够中流切换摄像机,那么我建议您使用WebRTC的“官方” example,但是,您需要使用{{1 }}进行实时查看。
,在我看来,就像@divinelemom所建议的那样,您的网络软件缺少用户界面来让您的用户选择摄像机或虚拟摄像机。这样做是个好主意。这样做的示例代码在这里。
https://webrtc.github.io/samples/src/content/devices/input-output/
同时,使用此URL查看Chrome的界面,用于选择默认相机。
chrome:// settings / content / camera
它为您提供了这样的页面。设置后,您的选择就是“粘性”,因为它将在您的Web应用程序中使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。