現在,我正在嘗試爲我的教育創建一個「snapchat」類的web應用程序。 該應用使用HTML5標籤,如視頻和畫布。HTML視頻標籤用於填充手機上的整個屏幕
然後我使用getUserMedia來獲取相機輸出,但我的問題是我無法獲得視頻標籤來填充整個屏幕。
我嘗試了一切從寬度:100%;身高:100%,身高:100vh,jquery,但搞砸了getUserMedia功能,所以它甚至沒有工作。
現在,這是我的代碼: HTML文件:
<!doctype html>
<html lang="da">
<head>
<title>Camera output</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/style.css" type="text/css" rel="stylesheet">
<script src="jquery-3.1.1.min.js"></script>
</head>
<body>
<video id="video" autoplay></video>
<button id="snap" class="snapButton">Snap Photo</button>
<canvas id="canvas" width="640" height="480"></canvas>
<script src="js/script.js" type="text/javascript"></script>
</body>
</html>
CSS文件:
* {
margin: 0;
padding: 0;
}
#video {
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
transform-origin: center center;
}
JS文件:
function setElementFullScreen(selector) {
var ele= $(selector);
// Set left/top, can be done in directly in css
ele.css('top',0).css('left',0);
// Set size from window
ele.height($(window).height()).width($(window).width());
}
$(document).ready(function() {
setElementFullScreen('video');
});
// Add resize event
$(window).on('resize', function() {
setElementFullScreen('video');
});
// Put event listeners into place
window.addEventListener("DOMContentLoaded", function() {
// Grab elements, create settings, etc.
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var video = document.getElementById('video');
var mediaConfig = { video: true };
var errBack = function(e) {
console.log('An error has occurred!', e)
};
// Put video listeners into place
if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia(mediaConfig).then(function(stream) {
video.src = window.URL.createObjectURL(stream);
video.play();
});
}
/* Legacy code below! */
else if(navigator.getUserMedia) { // Standard
navigator.getUserMedia(mediaConfig, function(stream) {
video.src = stream;
video.play();
}, errBack);
} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
navigator.webkitGetUserMedia(mediaConfig, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
} else if(navigator.mozGetUserMedia) { // Mozilla-prefixed
navigator.mozGetUserMedia(mediaConfig, function(stream){
video.src = window.URL.createObjectURL(stream);
video.play();
}, errBack);
}
// Trigger photo take
document.getElementById('snap').addEventListener('click', function() {
context.drawImage(video, 0, 0, 640, 480);
});
}, false);
所以我的問題是:有沒有任何方式使視頻標籤填充手機屏幕的每一個位?我在桌面上嘗試過,它在水平填充時沒有問題。
在此先感謝。
我想你誤會了。我不希望它全屏顯示,因爲我將在元素頂部有按鈕。我希望它能填充手機的整個背景/屏幕 – Ismail
這完全不是我認爲你的問題所在。你可以發佈一些更多的代碼嗎?特別感興趣的是你的'CSS'和視頻和按鈕覆蓋的包裝。 – bowl0stu
對不起,如果我的問題不是很清楚。我用我的html,css和js文件更新了我的問題。 – Ismail