Abrí una cámara web usando el siguiente código JavaScript: navigator.getUserMedia
¿Hay algún código JavaScript para detener o cerrar la cámara web? Gracias a todos.
fuente
Abrí una cámara web usando el siguiente código JavaScript: navigator.getUserMedia
¿Hay algún código JavaScript para detener o cerrar la cámara web? Gracias a todos.
EDITAR
Desde que esta respuesta se publicó originalmente, la API del navegador ha cambiado.
.stop()
ya no está disponible en la secuencia que se pasa a la devolución de llamada. El desarrollador tendrá que acceder a las pistas que componen la transmisión (audio o video) y detener cada una de ellas individualmente.
Más información aquí: https://developers.google.com/web/updates/2015/07/mediastream-deprecations?hl=en#stop-ended-and-active
Ejemplo (del enlace de arriba):
stream.getTracks().forEach(function(track) {
track.stop();
});
El soporte del navegador puede diferir.
Respuesta original
navigator.getUserMedia
le proporciona una transmisión en la devolución de llamada exitosa, puede llamar .stop()
a esa transmisión para detener la grabación (al menos en Chrome, parece que a FF no le gusta)
stream.stop()
no funciona para Chrome,mediaRecorder.stop()
detiene la grabación, mientras que no detiene la transmisión proporcionada por el navegador. ¿Puedes mirar este stackoverflow.com/questions/34715357/…Use cualquiera de estas funciones:
Nota: La respuesta se actualizó el: 06/09/2020
fuente
stream.getTracks().forEach(track => { track.stop() })
? O si realmente está haciendo esto con la frecuencia suficiente para justificar una taquigrafía, siempre puede definir una función auxiliar comostopAllTracks(stream)
.No lo uses
stream.stop()
, está en desusoDepreciaciones de MediaStream
Utilizar
stream.getTracks().forEach(track => track.stop())
fuente
FF, Chrome y Opera ha comenzado exponiendo
getUserMedia
a travésnavigator.mediaDevices
de serie ahora (podría cambiar :)demostración en línea
fuente
Iniciar Webcam Video con diferentes navegadores
Para la ópera 12
Para Firefox Nightly 18.0
Para Chrome 22
Detener el video de la cámara web con diferentes navegadores
Para la ópera 12
Para Firefox Nightly 18.0
Para Chrome 22
Con esto, la luz de la cámara web se apaga cada vez ...
fuente
Supongamos que tenemos streaming en la etiqueta de video y la identificación es video,
<video id="video"></video>
entonces deberíamos tener el siguiente código:fuente
Puede finalizar la secuencia directamente utilizando el objeto de secuencia devuelto en el controlador de éxito para getUserMedia. p.ej
video.src=""
onull
simplemente eliminaría la fuente de la etiqueta de video. No soltará el hardware.fuente
Pruebe el método a continuación:
fuente
Si
.stop()
está en desuso, entonces no creo que debamos volver a agregarlo como dosis @MuazKhan. Es una razón de por qué las cosas se desaprobaron y ya no deberían usarse. Simplemente cree una función auxiliar en su lugar ... Aquí hay una versión más es6fuente
for (let track of stream.getTracks()) { track.stop() }
stream.getTracks().forEach(function (track) { track.stop() })
en ES5, esto evita largas transformaciones de babelfor of
Como necesita las pistas para cerrar la transmisión, y necesita el
stream
objeto para llegar a las pistas, el código que he usado con la ayuda de la respuesta de Muaz Khan anterior es el siguiente:Por supuesto, esto cerrará todas las pistas de video activas. Si tiene múltiples, debe seleccionar en consecuencia.
fuente
Debe detener todas las pistas (desde la cámara web, el micrófono):
fuente
El uso de .stop () en la transmisión funciona en Chrome cuando se conecta a través de http. No funciona cuando se usa ssl (https).
fuente
Por favor verifique esto: https://jsfiddle.net/wazb1jks/3/
Para de grabar
fuente
El siguiente código funcionó para mí:
fuente
Iniciar y detener la cámara web, (Actualización 2020 React es6)
Iniciar cámara web
Detener la reproducción de cámara web o video en general
La función Stop Web Camera funciona incluso con transmisiones de video:
fuente
Tener una referencia de flujo de forma exitosa
fuente