是否可以从一个或多个摄像机在一个 Html 页面上嵌入两个网络摄像头流

Is it possible to embed two webcam streams on one Html page from one or more cameras.

本文关键字:一个 两个 网络 摄像头 摄像机 Html 是否      更新时间:2023-09-26

我试图在一个HTML页面上嵌入两个网络摄像头流。

我习惯了从这个网站获得的获取用户媒体脚本 https://www.kirupa.com/html5/accessing_your_webcam_in_html5.htm

适用于一个蒸汽,但是当我尝试在同一页面上制作两个不同的视频流时,它不起作用。

我尝试制作一个带有网格的div 标签,并在每个单元格中放置一个视频元素。这只会导致一个流。

这是我最近的尝试

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta content="stuff, to, help, search, engines, not" name="keywords">
  <meta content="What this page is about." name="description">
  <meta content="Display Webcam Stream" name="title">
  <title>Display Webcam Stream</title>
  
  <style>
    #container {
      margin: 0px auto;
      width: 500px;
      height: 375px;
      border: 10px #333 solid;
    }
    #videoElement {
      width: 500px;
      height: 375px;
      background-color: #666;
    }
    #container2 {
      margin: 0px auto;
      width: 500px;
      height: 375px;
      border: 10px #333 solid;
    }
    #videoElement2 {
      width: 500px;
      height: 375px;
      background-color: #666;
    }
  </style>
</head>
<body style="">
  <div id="container">
    
    <video autoplay id="videoElement">
      
    </video>
  </div>
  <div id="container2">
    
    <video2 autoplay="true" id="videoElement2">
      
    </video2>
  </div>
  <script>
    var video = document.querySelector("#videoElement");
     
    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia; 
    if (navigator.getUserMedia) {          
      navigator.getUserMedia({
        video: true
      }, handleVideo, videoError);
    } 
    function handleVideo(stream) {    
      video.src = window.URL.createObjectURL(stream);
    } 
    function videoError(e) {     // do something
    }
  </script>
</body>
</html>

我感谢任何帮助。谢谢。

通过设置video元素的src属性来告诉stream播放哪个元素。

基本上,您需要在此处复制所有支持videoElement的代码,而不仅仅是其创建。

您将遇到的一个问题是,许多浏览器不愿意同时调用getUserMedia两次(在上一个异步调用完成之前),因为这会使用户同时收到多个提示。要解决此问题,请将第二次调用放在 handleVideogetUserMedia,一次只用一个提示打扰用户。

您会遇到的第三个问题是,只有Firefox在权限提示中具有内置的设备选择功能,因此在Chrome上,您将获得两次相同的相机。

要在其他浏览器上执行此操作,您需要 enumerateDevices .我以前回答过这个问题。

最后,大多数智能手机都受到硬件限制,无法同时运行两个摄像头。