Ich habe eine Webcam mit dem folgenden JavaScript-Code geöffnet: navigator.getUserMedia
Gibt es JavaScript-Code zum Stoppen oder Schließen der Webcam? Vielen Dank an alle.
quelle
Ich habe eine Webcam mit dem folgenden JavaScript-Code geöffnet: navigator.getUserMedia
Gibt es JavaScript-Code zum Stoppen oder Schließen der Webcam? Vielen Dank an alle.
BEARBEITEN
Seit diese Antwort ursprünglich veröffentlicht wurde, hat sich die Browser-API geändert.
.stop()
ist für den Stream, der an den Rückruf übergeben wird, nicht mehr verfügbar. Der Entwickler muss auf die Tracks zugreifen, aus denen der Stream besteht (Audio oder Video), und jeden einzeln stoppen.
Weitere Informationen finden Sie hier: https://developers.google.com/web/updates/2015/07/mediastream-deprecations?hl=de#stop-ended-and-active
Beispiel (über den obigen Link):
stream.getTracks().forEach(function(track) {
track.stop();
});
Die Browserunterstützung kann abweichen.
Ursprüngliche Antwort
navigator.getUserMedia
Wenn Sie im erfolgreichen Rückruf einen Stream erhalten, können Sie .stop()
diesen Stream aufrufen , um die Aufzeichnung zu stoppen (zumindest in Chrome scheint FF dies nicht zu mögen).
stream.stop()
funktioniert nicht für Chrome,mediaRecorder.stop()
stoppt die Aufnahme, während es den vom Browser bereitgestellten Stream nicht stoppt. Können Sie sich diese stackoverflow.com/questions/34715357/…Verwenden Sie eine der folgenden Funktionen:
Hinweis: Die Antwort wurde aktualisiert am: 06/09/2020
quelle
stream.getTracks().forEach(track => { track.stop() })
? Oder wenn Sie dies wirklich oft genug tun, um eine Abkürzung zu rechtfertigen, können Sie jederzeit eine Hilfsfunktion wie definierenstopAllTracks(stream)
.Nicht verwenden
stream.stop()
, es ist veraltetMediaStream-Abschreibungen
Verwenden
stream.getTracks().forEach(track => track.stop())
quelle
FF, Chrome und Opera hat begonnen aussetzt
getUserMedia
übernavigator.mediaDevices
nun als Standard (ändern könnte :)Online-Demo
quelle
Starten von Webcam Video mit verschiedenen Browsern
Für Opera 12
Für Firefox Nightly 18.0
Für Chrome 22
Stoppen von Webcam-Videos mit verschiedenen Browsern
Für Opera 12
Für Firefox Nightly 18.0
Für Chrome 22
Damit geht die Webcam jedes Mal aus ...
quelle
Angenommen, wir haben Streaming in Video-Tag und ID ist Video -
<video id="video"></video>
dann sollten wir folgenden Code haben -quelle
Sie können den Stream direkt mit dem Stream-Objekt beenden, das im Success-Handler an getUserMedia zurückgegeben wird. z.B
video.src=""
odernull
würde einfach die Quelle aus dem Video-Tag entfernen. Die Hardware wird nicht freigegeben.quelle
Versuchen Sie die folgende Methode:
quelle
Wenn das
.stop()
veraltet ist, denke ich nicht, dass wir es wie die @ MuazKhan-Dosis erneut hinzufügen sollten. Dies ist ein Grund, warum Dinge veraltet sind und nicht mehr verwendet werden sollten. Erstellen Sie stattdessen einfach eine Hilfsfunktion ... Hier ist eine weitere es6-Versionquelle
for (let track of stream.getTracks()) { track.stop() }
stream.getTracks().forEach(function (track) { track.stop() })
in ES5 vermeidet dies langwierige babel-Transformationen vonfor of
Da Sie die Tracks benötigen, um das Streaming zu schließen, und Sie das
stream
Objekt benötigen , um zu den Tracks zu gelangen, lautet der Code, den ich mithilfe der obigen Antwort von Muaz Khan verwendet habe, wie folgt:Natürlich werden dadurch alle aktiven Videospuren geschlossen. Wenn Sie mehrere haben, sollten Sie entsprechend auswählen.
quelle
Sie müssen alle Titel (von Webcam, Mikrofon) anhalten:
quelle
Die Verwendung von .stop () im Stream funktioniert auf Chrome, wenn eine Verbindung über http hergestellt wird. Es funktioniert nicht bei Verwendung von ssl (https).
quelle
Bitte überprüfen Sie dies: https://jsfiddle.net/wazb1jks/3/
Höre auf, aufzunehmen
quelle
Der folgende Code hat bei mir funktioniert:
quelle
Starten und Stoppen der Webkamera (Update 2020 React es6)
Starten Sie die Webkamera
Stoppen Sie die Wiedergabe von Webkameras oder Videos im Allgemeinen
Die Funktion zum Stoppen der Webkamera funktioniert auch bei Videostreams:
quelle
Haben Sie eine Referenz von Stream Form successHandle
quelle