網頁HTML調用攝像頭功能


實時預覽

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>Title</title>
	</head>
	<body>
		<div>
			<video id="video"></video>
			<canvas id="canvas"></canvas>
			<!--  <canvas id="canvas" style="display: none"></canvas>-->
			<script>
				const width = 480;
				const height = 320;
				const video = document.getElementById('video');

				//訪問攝像頭
				if (
					navigator.mediaDevices.getUserMedia ||
					navigator.getUserMedia ||
					navigator.webkitGetUserMedia ||
					navigator.mozGetUserMedia
				) {
					//調用用戶媒體設備, 訪問攝像頭
					getUserMedia({ video: { width: width, height: height } }, success, error);
				} else {
					alert('不支持訪問用戶媒體');
				}

				//訪問用戶媒體設備的兼容方法
				function getUserMedia(constraints, success, error) {
					if (navigator.mediaDevices.getUserMedia) {
						//最新的標准API
						navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);
					} else if (navigator.webkitGetUserMedia) {
						//webkit核心瀏覽器
						navigator.webkitGetUserMedia(constraints, success, error);
					} else if (navigator.mozGetUserMedia) {
						//firfox瀏覽器
						navigator.mozGetUserMedia(constraints, success, error);
					} else if (navigator.getUserMedia) {
						//舊版API
						navigator.getUserMedia(constraints, success, error);
					}
				}

				//成功回調
				function success(stream) {
					console.log('成功');
					//兼容webkit核心瀏覽器
					// const CompatibleURL = window.URL || window.webkitURL;
					//將視頻流設置為video元素的源
					// video.src = CompatibleURL.createObjectURL(stream);
					video.srcObject = stream;
					video.play();
					setInterval(drawCanvasImage, 10);
				}

				//失敗回調
				function error(error) {
					console.log('失敗');
					console.log('訪問用戶媒體設備失敗', error);
				}

				function drawCanvasImage() {
					const canvas = document.getElementById('canvas');
					canvas.width = width;
					canvas.height = height;
					const context = canvas.getContext('2d');
					context.drawImage(video, 0, 0, width, height, 0, 0, width, height);
					//獲取圖片,數據格式為base64
					const imageData = canvas.toDataURL('image/png');
					console.log(imageData);
				}
			</script>
		</div>
	</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM