MediaStreamAudioSourceNode
==========================

L'interface **`MediaStreamAudioSourceNode`** est un type d'`AudioNode` qui traite une source audio dont le média a été récupéré depuis un objet `MediaStream`, obtenu en utilisant l'API WebRTC ou les API *Media Capture* et *Streams*.

Le média peut être obtenu depuis un microphone (avec `getUserMedia()`) ou depuis un pair distant pendant un appel WebRTC (avec les pistes audio de `RTCPeerConnection`).

Un nœud `MediaStreamAudioSourceNode` ne possède pas d'entrée et possède une seule sortie. Il est créé avec la méthode `AudioContext.createMediaStreamSource()` (en-US).

`MediaStreamAudioSourceNode` utilise l'audio de la *première* piste `MediaStreamTrack` (en-US) dont l'attribut `kind` (en-US) vaut `audio`. Voir ci-après l'ordre des pistes pour plus d'informations.

Le nombre de canaux de sortie correspond au nombre de pistes trouvées sur la piste audio sélectionnée.

EventTarget

AudioNode

MediaStreamAudioSourceNode

|  |  |
| --- | --- |
| Nombre d'entrées | `0` |
| Nombre de sorties | `1` |
| Nombre de canaux | Défini par la première piste audio `MediaStreamTrack` (en-US) passée à `AudioContext.createMediaStreamSource()` (en-US) qui a créé le nœud. |

Constructeur
------------

`new MediaStreamAudioSourceNode()` (en-US)

Crée un nouvel objet `MediaStreamAudioSourceNode` avec les options indiquées.

Propriétés
----------

*En complément des propriétés suivantes, `MediaStreamAudioSourceNode` hérite des propriétés de l'interface parente, `AudioNode`.*

`mediaStream` (en-US) Lecture seule 

L'objet `MediaStream` utilisé pour la construction de ce `MediaStreamAudioSourceNode`.

Méthodes
--------

*Cette interface hérite des méthodes de son parent, `AudioNode`.*

Exceptions
----------

`InvalidStateError` `DOMException`

Cette exception est levée si le flux indiqué par le paramètre `mediaStream` ne contient pas de piste audio.

Notes d'utilisation
-------------------

### Ordre des pistes

Pour l'interface `MediaStreamTrackAudioSourceNode`, l'ordre des pistes audio du flux est déterminé en prenant les pistes pour lesquelles l'attribut `kind` (en-US) vaut `audio`, en triant ces pistes selon les valeurs de leur propriété `id` (en-US) selon l'ordre des points de code Unicode (ce qui correspond généralement à l'ordre alphabétique ou lexicographique lorsque les identifiants sont des chaînes de caractères alphanumériques simples).

La **première** piste est donc la piste dont l'identifiant `id` est le premier parmi ceux de toutes les pistes audio selon l'ordre des points de code Unicode.

Il est toutefois important de noter que cette règle pour l'ordre a été ajoutée après que cette interface a été introduite dans l'API *Web Audio*. Aussi, mieux vaut ne pas s'appuyer trop sur l'hypothèse que l'ordre sera le même d'un navigateur à l'autre, ou même d'une version à une autre d'un même navigateur.

L'interface `MediaStreamTrackAudioSourceNode` (en-US) est semblable à `MediaStreamAudioSourceNode`, mais évite ce problème en permettant d'indiquer la piste qu'on souhaite utiliser.

Exemple
-------

Voir `AudioContext.createMediaStreamSource()` (en-US) pour un exemple de code qui utilise cet objet.

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

| Specification |
| --- |
| Web Audio API # MediaStreamAudioSourceNode |

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

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

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

* Utiliser l'API *Web Audio*
* L'API WebRTC
* Les API *Media Capture* et *Streams*
* `MediaStreamTrackAudioSourceNode` (en-US)