Я открыл веб-камеру, используя следующий код JavaScript: navigator.getUserMedia
Есть ли код JavaScript, чтобы остановить или закрыть веб-камеру? Спасибо всем.
источник
Я открыл веб-камеру, используя следующий код JavaScript: navigator.getUserMedia
Есть ли код JavaScript, чтобы остановить или закрыть веб-камеру? Спасибо всем.
РЕДАКТИРОВАТЬ
Так как этот ответ был первоначально опубликован, API браузера изменился.
.stop()
больше не доступен в потоке, который передается обратному вызову. Разработчик должен будет получить доступ к дорожкам, которые составляют поток (аудио или видео), и остановить каждую из них в отдельности.
Более подробная информация здесь: https://developers.google.com/web/updates/2015/07/mediastream-deprecations?hl=en#stop-ended-and-active
Пример (по ссылке выше):
stream.getTracks().forEach(function(track) {
track.stop();
});
Поддержка браузера может отличаться.
Оригинальный ответ
navigator.getUserMedia
предоставляет вам поток в обратном вызове успеха, вы можете вызвать .stop()
этот поток, чтобы остановить запись (по крайней мере, в Chrome, кажется, FF это не нравится)
stream.stop()
не работает для Chrome,mediaRecorder.stop()
останавливает запись, в то время как это не останавливает поток, предоставленный браузером. Можете ли вы посмотреть на этот stackoverflow.com/questions/34715357/…Используйте любую из этих функций:
Примечание. Ответ был обновлен 09.09.2020.
источник
stream.getTracks().forEach(track => { track.stop() })
? Или, если вы действительно делаете это достаточно часто, чтобы оправдать сокращение, вы всегда можете определить вспомогательную функцию, напримерstopAllTracks(stream)
.Не используйте
stream.stop()
, это устарелоMediaStream Устаревшие
использование
stream.getTracks().forEach(track => track.stop())
источник
FF, Chrome и Opera начали выставлять
getUserMedia
черезnavigator.mediaDevices
стандарт как сейчас (может измениться :)онлайн-демонстрация
источник
Запуск видео с веб-камеры в разных браузерах
Для Opera 12
Для Firefox Nightly 18.0
Для Chrome 22
Остановка видео с веб-камеры в разных браузерах
Для Opera 12
Для Firefox Nightly 18.0
Для Chrome 22
С этим свет веб-камеры гаснет каждый раз ...
источник
Предположим, у нас есть потоковая передача в теге video, а id - это video,
<video id="video"></video>
тогда у нас должен быть следующий код -источник
Вы можете завершить поток напрямую, используя объект потока, возвращенный в обработчике успеха getUserMedia. например
video.src=""
илиnull
просто удалили бы источник из тега видео. Это не выпустит аппаратное обеспечение.источник
Попробуйте метод ниже:
источник
Если
.stop()
это устарело, то я не думаю, что мы должны добавить его снова, как доза @MuazKhan. Это причина того, почему вещи устарели и больше не должны использоваться. Вместо этого просто создайте вспомогательную функцию ... Вот еще версия для es6источник
for (let track of stream.getTracks()) { track.stop() }
stream.getTracks().forEach(function (track) { track.stop() })
в ES5 это позволяет избежать длительных преобразованийfor of
Поскольку вам нужны дорожки, чтобы закрыть потоковую передачу, и вам нужен
stream
проект, чтобы добраться до дорожек, код, который я использовал с помощью ответа Муаз-хана выше, выглядит следующим образом:Конечно, это закроет все активные видеодорожки. Если у вас их несколько, выберите соответствующий вариант.
источник
Вам нужно остановить все треки (с веб-камеры, микрофона):
источник
Использование .stop () в потоке работает в Chrome при подключении через http. Не работает при использовании ssl (https).
источник
Пожалуйста, проверьте это: https://jsfiddle.net/wazb1jks/3/
Остановить запись
источник
Следующий код работал для меня:
источник
Запустите и остановите веб-камеру, (обновление 2020 React ES6)
Запустить веб-камеру
Остановить воспроизведение веб-камеры или видео в целом
Функция Stop Web Camera работает даже с видеопотоками:
источник
Есть ссылка на поток формы successHandle
источник