Недавно мне пришлось вручную получить управляемую веб -камеру, чтобы выключить JavaScript для проекта на работе.
Мне было трудно понять API JavaScript MediaStream, поэтому вот несколько быстрых заметок о том, как я получил камеру, чтобы остановиться.
Если камера проходит через видео элемент, вы можете остановить видео, получив его MediaStreamtrack объект и использование Stop () Метод:
const video = document.querySelector('video');
// A video's MediaStream object is available through its srcObject attribute
const mediaStream = video.srcObject;
// Through the MediaStream, you can get the MediaStreamTracks with getTracks():
const tracks = mediaStream.getTracks();
// Tracks are returned as an array, so if you know you only have one, you can stop it with:
tracks[0].stop();
// Or stop all like so:
tracks.forEach(track => track.stop())
Еще один способ получить все медиастремы – использовать mediaDevices.getUsermedia () который вызван Навигатор треки. Он предлагает пользователю разрешение (если еще не предоставлено) получить доступ к медиа -устройствам. Это вернет обещание, чтобы вы могли написать необходимый код в обещании Тогда :
navigator.mediaDevices.getUserMedia({video: true, audio: false})
.then(mediaStream => {
const stream = mediaStream;
const tracks = stream.getTracks();
tracks[0].stop;
})
Убедитесь, что вы только звоните getusermedia один раз или Stop () Не сработает, поэтому, если ваш код или библиотека, которую вы используете звонки getusermedia На странице, чтобы активировать камеру, вы, вероятно, не сможете использовать этот метод.
Рекомендации
- MDN MediaStreamtrack документация
- MDN MediaStreamtrack документация
- Mdn mediaDevices.getUsermedia () документация
Оригинал: “https://dev.to/morinoko/stopping-a-webcam-with-javascript-4297”