我试图在一个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>
&#13;
我感谢任何帮助。 谢谢。
答案 0 :(得分:1)
通过设置video
属性,告诉stream
元素src
要播放的内容。
基本上你需要在这里复制支持videoElement
的所有代码,而不仅仅是它的创建。
您遇到的一个问题是,许多浏览器在同一时间(在上一次异步调用完成之前)两次调用getUserMedia
时都不满意,因为这会一次性多次提示用户。要解决此问题,请将getUserMedia
内的第二个电话放在handleVideo
内,以便一次只打扰一个用户。
您遇到的第三个问题是,只有Firefox在权限提示中选择了内置设备,因此在Chrome上您将获得两次相同的相机。
要在其他浏览器上使用此功能,您需要enumerateDevices
。我answered that before。
最后,大多数智能手机都是硬件限制的,不能同时运行这两款相机。