从HTML的角度来看,它基本上只是这样。
<body>
<video id="video-bg>
<div id="site_wrapper">
<!--the html-->
</div>
</body>
对于CSS,您只需要使用
position:absolute
将HTML叠加在视频上。 top,left和right仅确保它们对齐顶部并延伸到浏览器的宽度。
#site_wrapper{
position:relative;
}
#video-bg {
position:absolute;
top: 0;
left: 0;
right: 0;
}
通过使用getUserMedia
,可以从相机中提取视频,并将其转换为blob,然后将blob传入<video>
元素中。更多信息请参见此MDN示例:
navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } },
function(stream) {
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(stream);
video.onloadedmetadata = function(e) {
video.play();
};
},
function(err) {
console.log("The following error occured: " + err.name);
}
);
摄像头不需要流到互联网上,网站只需要在本地获取视频信号。
现在这让我有点困扰。如果你的网站在一个网络或在线上,那么“本地”一词将意味着观看者的机器,而不是你的夜总会的机器。如果你想要在背景中播放你的俱乐部视频,你需要通过网络传输视频,并让页面将其下载流式传输。
如果你的网站是你的夜总会里的一个信息亭,那么“本地”就有意义了。你的信息亭会连接一个摄像头,上述代码将适用。