MediaStream
===========

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

L'interface `MediaStream` représente le contenu d'un flux de média. Un flux est composé de plusieurs *pistes*, tel que des pistes vidéos ou audio.

Attributs
---------

`MediaStream.id` (en-US) Lecture seule 

`DOMString` contenant 36 carractères correspondant à l'identifiant unique (GUID) de l'objet.

`MediaStream.ended` Lecture seule 

Booléen dont la valeur est `true` si l'évènement `ended` (en-US) à été déclenché sur l'objet, signifiant que le flux à été complètement lu, ou `false` si la fin du flux n'à pas été atteinte.

### Gestionnaire d'évènements

`MediaStream.onaddtrack` (en-US)

Est un gestionnaire d'évènement contenant l'action à exécuter lorsqu'un évènement `addtrack` (en-US) est déclenché sur l'objet, ce qui arrive lorsqu'un nouvel objet `MediaStreamTrack` (en-US) est ajouté.

`MediaStream.onended`

Est un gestionnaire d'évènement contenant l'action à exécuter lorsqu'un évènement `ended` (en-US) est déclenché sur l'objet, ce qui arrive lorsque la diffusion est terminée.

`MediaStream.onremovetrack` (en-US)

Est un gestionnaire d'évènement contenant l'action à exécuter lorsqu'un évènement `removetrack` (en-US) est délenché sur l'objet, ce qui arrive quand un objet `MediaStreamTrack` (en-US) est retiré.

Méthodes
--------

`MediaStream.getTrackById()` (en-US)

Retourne la piste dont l'ID correspond à celui passé en paramètre, `trackid`. Si aucun paramètre n'est fourni, ou si aucune piste avec cet id existe, la fonction retourne `null`. Si plusieurs pistes ont le même id, elle retourne la première piste.


`MediaStream.addTrack()` (en-US)

Stocke une copie de `MediaStreamTrack` (en-US) fourni en paramètre. Si la piste à déjà été ajouté à l'objet `MediaStream`, rien ne se passe; si la piste est au statut `finished`, c'est à dire qu'elle est terminée, l'exception `INVALID_STATE_RAISE` est levée.

`MediaStream.removeTrack()` (en-US)

Retire le the `MediaStreamTrack` (en-US) fourni comme argument. Si la piste ne fait pas parti du `MediaStream`, rien ne se passe; Si la piste est au statut `finished`, ce qui arrive lorsqu'elle est terminée, l'exception `INVALID_STATE_RAISE` est levée.

`MediaStream.getAudioTracks()` (en-US)

Retourne la liste des `MediaStreamTrack` (en-US) stockés dans l'objet `MediaStream` qui ont leur attribut `kind` défini à `"audio"`. L'ordre n'est pas défini, et peut varier d'un navigateur à l'autre, mais aussi d'un appel de la méthode à l'autre.

`MediaStream.getVideoTracks()` (en-US)

Retourne une liste des `MediaStreamTrack` (en-US) stockés dans l'objet `MediaStream` qui ont leur attribut `kind` défini à `"video"`. L'ordre n'est pas défini, et peut varier d'un navigateur à l'autre, mais aussi d'un appel de la méthode à l'autre.

Spécifications
--------------

| Specification |
| --- |
| Media Capture and Streams # mediastream |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utilisation de l'API MediaStream
* WebRTC API
* Web Audio API
* `MediaStreamTrack` (en-US)