Abri uma webcam usando o seguinte código JavaScript: navigator.getUserMedia
Existe algum código JavaScript para parar ou fechar a webcam? Obrigado a todos.
fonte
Abri uma webcam usando o seguinte código JavaScript: navigator.getUserMedia
Existe algum código JavaScript para parar ou fechar a webcam? Obrigado a todos.
EDITAR
Como esta resposta foi publicada originalmente, a API do navegador mudou.
.stop()
não está mais disponível no fluxo que é passado para o retorno de chamada. O desenvolvedor terá que acessar as faixas que compõem o fluxo (áudio ou vídeo) e interromper cada uma delas individualmente.
Mais informações aqui: https://developers.google.com/web/updates/2015/07/mediastream-deprecations?hl=pt_PT#stop-ended-and-active
Exemplo (no link acima):
stream.getTracks().forEach(function(track) {
track.stop();
});
O suporte ao navegador pode ser diferente.
Resposta original
navigator.getUserMedia
fornece um fluxo no retorno de chamada bem-sucedido, você pode chamá .stop()
-lo para interromper a gravação (pelo menos no Chrome, parece que o FF não gosta)
stream.stop()
não funciona para o chrome,mediaRecorder.stop()
interrompe a gravação, enquanto não interrompe o fluxo fornecido pelo navegador. Você pode olhar para este stackoverflow.com/questions/34715357/…Use qualquer uma destas funções:
Nota: A resposta foi atualizada em: 06/09/2020
fonte
stream.getTracks().forEach(track => { track.stop() })
? Ou, se você realmente está fazendo isso com frequência suficiente para justificar uma abreviação, sempre pode definir uma função auxiliar comostopAllTracks(stream)
.Não use
stream.stop()
, está obsoletoDescontinuações do MediaStream
Usar
stream.getTracks().forEach(track => track.stop())
fonte
FF, Chrome e Opera começaram a expor
getUserMedia
vianavigator.mediaDevices
como padrão agora (pode mudar :)demonstração online
fonte
Iniciando o vídeo da webcam com diferentes navegadores
Para o Opera 12
Para o Firefox Nightly 18.0
Para Chrome 22
Parando o vídeo da webcam com diferentes navegadores
Para o Opera 12
Para o Firefox Nightly 18.0
Para Chrome 22
Com isso, a luz da webcam se apaga toda vez ...
fonte
Suponha que tenhamos streaming na tag de vídeo e o ID seja video.
<video id="video"></video>
Deveríamos ter o seguinte código:fonte
Você pode finalizar o fluxo diretamente usando o objeto de fluxo retornado no manipulador de sucesso para getUserMedia. por exemplo
video.src=""
ounull
apenas removeria a fonte da tag de vídeo. Não vai liberar o hardware.fonte
Experimente o método abaixo:
fonte
Se o
.stop()
item foi descontinuado, acho que não devemos adicioná-lo novamente como a dose do @MuazKhan. É uma razão pela qual as coisas ficam obsoletas e não devem mais ser usadas. Basta criar uma função auxiliar ... Aqui está uma versão mais es6fonte
for (let track of stream.getTracks()) { track.stop() }
stream.getTracks().forEach(function (track) { track.stop() })
em ES5, isso evita longas transforma babel defor of
Como você precisa das faixas para fechar a transmissão e do
stream
bojeto para acessá-las, o código que usei com a ajuda da resposta de Muaz Khan acima é o seguinte:Claro que isso fechará todas as faixas de vídeo ativas. Se você tiver vários, você deve selecionar de acordo.
fonte
Você precisa parar todas as faixas (da webcam, microfone):
fonte
O uso de .stop () no fluxo funciona no chrome quando conectado via http. Não funciona ao usar SSL (https).
fonte
Verifique isso: https://jsfiddle.net/wazb1jks/3/
Pare de gravar
fonte
O código a seguir funcionou para mim:
fonte
Iniciar e parar a câmera da Web, (atualização 2020 React es6)
Iniciar Web Camera
Pare a reprodução da câmera Web ou do vídeo em geral
A função Stop Web Camera funciona mesmo com fluxos de vídeo:
fonte
Ter uma referência ao sucesso do formulário de fluxo
fonte