微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每个浏览器页面多个摄像头

如何解决每个浏览器页面多个摄像头

我们有一台带有一个内置网络摄像头和2个外部USB网络摄像头的笔记本电脑。我想同时从所有三个网络摄像头接收图像。我知道自2018年以来这是可能的。 我正在使用以下代码与一台摄像机配合使用,但是如何一次显示三台摄像机的图像?

<script>
var video = null;
var canvas = null;
var canvasContext = null;
var webimage = null;
var statusLabel = null;

function initVideo() {
    video = document.getElementById("monitor");
    statusLabel = document.getElementById("LBLSTATUS");
    navigator.webkitGetUserMedia({video:true},gotStream,noStream);
}

function setStatus(aStatus) {
    statusLabel.innerHTML = aStatus;
}

function gotStream(stream) {
    video.onerror = function () {
        stream.stop();
        streamError();
    };
                video.srcObject = stream;
    //video.src = webkitURL.createObjectURL(stream);  -> Deprecated 
}

function noStream() {
    setStatus('No camera available.');
}
 
function streamError() {
    setStatus('Camera error.');
}

 </script>

解决方法

您需要获取所有3个摄像机的deviceID。取得这些名称后,请对getUserMedia进行3次调用,每个调用都有各自的摄像机ID。

navigator.mediaDevices.getUserMedia({
  video: {
    deviceId:{
      exact: videoSource
    },},}).then(function( video ) {
  const localVidElem = document.getElementById( 'localVideo1' );
  localVidElem.srcObject = video;
})
<video id="localVideo1"></video>

确保您具有正确的DeviceID,然后为其分配一个srcObject。有关更多信息,请阅读official WebRTC docs

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。