Я работал в этом учебном пособии https://www.digitalocean.com/community/ ... tusermedia для захвата видеопотоков с передней или задней камеры на iPhone. Safari или Edge. Он показывает канал камеры в режиме полноэкранного режима, а не в сером видео поле.feather.replace();
const controls = document.querySelector('.controls');
const cameraOptions = document.querySelector('.video-options>select');
const video = document.querySelector('video');
const canvas = document.querySelector('canvas');
const screenshotImage = document.querySelector('img');
const buttons = [...controls.querySelectorAll('button')];
let streamStarted = false;
const [play, pause, screenshot] = buttons;
const constraints = {
video: {
width: {
min: 1280,
ideal: 1920,
max: 2560,
},
height: {
min: 720,
ideal: 1080,
max: 1440
},
}
};
cameraOptions.onchange = () => {
const updatedConstraints = {
...constraints,
deviceId: {
exact: cameraOptions.value
}
};
startStream(updatedConstraints);
};
play.onclick = () => {
if (streamStarted) {
video.play();
play.classList.add('d-none');
pause.classList.remove('d-none');
return;
}
if ('mediaDevices' in navigator && navigator.mediaDevices.getUserMedia) {
const updatedConstraints = {
...constraints,
deviceId: {
exact: cameraOptions.value
}
};
startStream(updatedConstraints);
}
};
const pauseStream = () => {
video.pause();
play.classList.remove('d-none');
pause.classList.add('d-none');
};
const doScreenshot = () => {
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
canvas.getContext('2d').drawImage(video, 0, 0);
screenshotImage.src = canvas.toDataURL('image/webp');
screenshotImage.classList.remove('d-none');
};
pause.onclick = pauseStream;
screenshot.onclick = doScreenshot;
const startStream = async (constraints) => {
const stream = await navigator.mediaDevices.getUserMedia(constraints);
handleStream(stream);
};
const handleStream = (stream) => {
video.srcObject = stream;
play.classList.add('d-none');
pause.classList.remove('d-none');
screenshot.classList.remove('d-none');
};
const getCameraSelection = async () => {
const devices = await navigator.mediaDevices.enumerateDevices();
const videoDevices = devices.filter(device => device.kind === 'videoinput');
const options = videoDevices.map(videoDevice => {
return `${videoDevice.label}`;
});
cameraOptions.innerHTML = options.join('');
};
getCameraSelection();
Подробнее здесь: https://stackoverflow.com/questions/784 ... amera-vide
Предотвратить браузер для iOS, чтобы включить режим полноэкранной камеры при потоковой передаче видео камеры ⇐ Html
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка выключения экрана при потоковой передаче видео на веб -сайте фильма использует ReactJS
Anonymous » » в форуме IOS - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Принудительно использовать светлый режим, когда браузер установлен в темный режим
Anonymous » » в форуме CSS - 0 Ответы
- 50 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Принудительно использовать светлый режим, когда браузер установлен в темный режим
Anonymous » » в форуме CSS - 0 Ответы
- 55 Просмотры
-
Последнее сообщение Anonymous
-