+
95
-

js在浏览器中调用指定的摄像头?

js在浏览器中调用指定的摄像头?

不是默认的摄像头,比如第二个

网友回复

+
15
-

在浏览器中使用 JavaScript 调用指定的摄像头,你可以使用 Web API 中的 `navigator.mediaDevices.getUserMedia()` 方法,结合 `navigator.mediaDevices.enumerateDevices()` 方法来实现。以下是一个步骤性的指南:

1. 首先,获取可用的媒体设备列表:

async function getDevices() {
const devices = await navigator.mediaDevices.enumerateDevices();
return devices.filter(device => device.kind === 'videoinput');
}
2. 创建一个函数来启动指定的摄像头:
async function startCamera(deviceId) {
const constraints = {
video: { deviceId: { exact: deviceId } }
};

try {
const stream = await navigator.mediaDevices.getUserMedia(constraints);
const videoElement = document.querySelector('video');
videoElement.srcObject = stream;
} catch (error) {
console.error('Error accessing the camera:', error);
}
}

3. 创建一个用户界面来选择摄像头:<select id="cameraSelect"></select><video autoplay playsinline></video>4. 填充选择框并处理选择事件:
async function setupCameraSelection() {
    const cameraSelect = document.getElementById('cameraSelect');
    const cameras = await getDevices();

    cameras.forEach(camera => {
        const option = document.createElement('option');
        option.value = camera.deviceId;
        option.text = camera.label || `Camera ${cameraSelect.length + 1}`;
        cameraSelect.add(option);
    });

   ...

点击查看剩余70%

我知道答案,我要回答