JavaScript を使用してユーザーのカメラとマイクをアクティブにするには、 API の WebRTC 、 具体的には getUserMedia API 。この関数は、オーディオ ストリームとビデオ ストリームを含む MediaStream オブジェクトに解決される Promise を返します。
カメラとオーディオを起動する例
HTMLサンプルコード(index.html)
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Acceso a Cámara y Micrófono</title>
<style>
body {
background-color: #000000;
color: #ffffff !important;
}
video {
width: 100%;
height: 400px;
}
</style>
</head>
<body>
<h1>Video de Cámara</h1>
<button id="start">Iniciar</button>
<button id="stop">Detener</button>
<video id="video" autoplay></video>
<script src="app.js"></script>
</body>
</html>
Javascript サンプルコード (app.js)
// Obtener referencias a los elementos HTML
const video = document.getElementById('video');
const startButton = document.getElementById('start');
const stopButton = document.getElementById('stop');
let stream = null;
// Función para iniciar el acceso a cámara y micrófono
async function startMedia() {
try {
// Solicitar acceso a cámara y micrófono
stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true });
// Asignar el flujo de medios al elemento de video
video.srcObject = stream;
// Mostrar el video en pantalla
video.play();
} catch (error) {
console.error('Error al acceder a la cámara y al micrófono:', error);
}
}
// Función para detener el acceso a cámara y micrófono
function stopMedia() {
if (stream) {
// Detener todos los tracks del flujo
stream.getTracks().forEach(track => track.stop());
video.srcObject = null;
}
}
// Añadir eventos a los botones
startButton.addEventListener('click', startMedia);
stopButton.addEventListener('click', stopMedia);
Web アプリケーションでカメラとマイクを有効にすると、革新的で便利なアプリケーションを開発するための幅広い可能性が広がります。オーディオとビデオのキャプチャの一般的なアプリケーションと使用例をいくつか示します。