Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

HTMLCanvasElement : méthode captureStream()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨janvier 2020⁩.

La méthode captureStream() de l'interface HTMLCanvasElement retourne un objet MediaStream contenant une CanvasCaptureMediaStreamTrack qui réalise une capture vidéo en temps réel du contenu du canevas.

Syntaxe

js
captureStream()
captureStream(frameRate)

Paramètres

frameRate Facultatif

Une valeur à virgule flottante en double précision qui indique la fréquence de capture de chaque image. Si elle n'est pas définie, une nouvelle image est capturée à chaque modification du canevas ; si elle est définie à 0, les images ne sont pas capturées automatiquement ; elles ne le sont que lorsque la méthode requestFrame() de la piste renvoyée est appelée.

Valeur de retour

Une référence à un objet MediaStream contenant une seule CanvasCaptureMediaStreamTrack.

Exceptions

NotSupportedError DOMException

Levée si la valeur de frameRate est négative.

SecurityError DOMException

Levée si le bitmap du canevas n'est pas d'origine sûre ; au moins une partie de son contenu a été, ou pourrait avoir été, chargée depuis un site différent de celui d'où provient le document.

Exemple

js
// Rechercher l'élément canevas à capturer
const canvasElt = document.querySelector("canvas");

// Obtient le flux
const stream = canvasElt.captureStream(25); // 25 FPS

// Traite le flux
// Par exemple : l'envoyer vers un autre ordinateur via une
// RTCPeerConnection pc est une RTCPeerConnection créée ailleurs
stream.getTracks().forEach((track) => pc.addTrack(track, stream));

Spécifications

Specification
Media Capture from DOM Elements
# dom-htmlcanvaselement-capturestream

Compatibilité des navigateurs

Voir aussi