AudioListener
=============

L'interface `AudioListener` représente la position et l'orientation de l'unique personne écoutant la scène audio ; elle est utilisée dans le cadre d'une spatialisation audio. Tous les objets `PannerNode` (en-US) sont spatialisés par rapport à l'objet `AudioListener` stocké dans la propriété `BaseAudioContext.listener` (en-US).

Il est important de noter qu'il n'y a qu'un seul auditeur par contexte, et qu'il ne s'agit pas d'un `AudioNode`.

![On voit ici la position, les vecteurs haut et face d'un AudioListener, avec les vecteurs haut et face à 90° l'un de l'autre.](/fr/docs/Web/API/AudioListener/webaudiolistenerreduced.svg)

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

**Note :** Les valeurs de position, d'orientation, et du haut de la tête peuvent être définies et lues à l'aide de différentes syntaxes. Par exemple, l'accès se fait à l'aide de la propriété, `AudioListener.positionX`, tandis que la même propriété est définie à l'aide de `AudioListener.positionX.value`. C'est pourquoi ces valeurs ne sont pas marquées en lecture seule, bien qu'elles apparaissent comme telle dans la spécification IDL.

`AudioListener.positionX` (en-US)

La position horizontale de la personne qui écoute avec des coordonnées cartésiennes selon la règle de la main droite. La valeur par défaut est `0`.

`AudioListener.positionY` (en-US)

La position verticale de la personne qui écoute avec des coordonnées cartésiennes selon la règle de la main droite. La valeur par défaut est `0`.

`AudioListener.positionZ` (en-US)

La position longitudinale (avant et arrière) de la personne qui écoute avec des coordonnées cartésiennes selon la règle de la main droite. La valeur par défaut est `0`.

`AudioListener.forwardX` (en-US)

La position horizontale de l'orientation vers l'avant de la personne qui écoute avec le même système de coordonnées cartésiennes que les valeurs de position (`positionX`, `positionY`, et `positionZ`). Les valeurs de direction vers l'avant et vers le haut sont indépendantes linéairement l'une de l'autre. La valeur par défaut est `0`.

`AudioListener.forwardY` (en-US)

La position verticale de l'orientation vers l'avant de la personne qui écoute avec le même système de coordonnées cartésiennes que les valeurs de position (`positionX`, `positionY`, et `positionZ`). Les valeurs de direction vers l'avant et vers le haut sont indépendantes linéairement l'une de l'autre. La valeur par défaut est `0`.

`AudioListener.forwardZ` (en-US)

La position longitudinale (avant et arrière) de l'orientation vers l'avant de la personne qui écoute avec le même système de coordonnées cartésiennes que les valeurs de position (`positionX`, `positionY`, et `positionZ`). Les valeurs de direction vers l'avant et vers le haut sont indépendantes linéairement l'une de l'autre. La valeur par défaut est `-1`.

`AudioListener.upX` (en-US)

La position horizontale du haut de la tête de la personne qui écoute avec le même système de coordonnées cartésiennes que les valeurs de position (`positionX`, `positionY`, et `positionZ`). Les valeurs de direction vers l'avant et vers le haut sont indépendantes linéairement l'une de l'autre. La valeur par défaut est `0`.

`AudioListener.upY` (en-US)

La position verticale du haut de la tête de la personne qui écoute avec le même système de coordonnées cartésiennes que les valeurs de position (`positionX`, `positionY`, et `positionZ`). Les valeurs de direction vers l'avant et vers le haut sont indépendantes linéairement l'une de l'autre. La valeur par défaut est `1`.

`AudioListener.upZ` (en-US)

La position longitudinale (avant et arrière) du haut de la tête de la personne qui écoute avec le même système de coordonnées cartésiennes que les valeurs de position (`positionX`, `positionY`, et `positionZ`). Les valeurs de direction vers l'avant et vers le haut sont indépendantes linéairement l'une de l'autre. La valeur par défaut est `0`.

Méthodes
--------

`AudioListener.setOrientation()` (en-US) 
Obsolète

Définit l'orientation de la personne qui écoute.

`AudioListener.setPosition()` (en-US) 
Obsolète

Définit la position de la personne qui écoute.


**Note :** Bien que ces méthodes soient dépréciées, il s'agit de l'unique façon de définir l'orientation et la position pour Firefox, Internet Explorer et Safari.

Fonctionnalités dépréciées
--------------------------

`AudioListener.dopplerFactor` 
Obsolète

Nombre flottant à double précision représentant la quantité de décalage de fréquence (*pitch shift*) à utiliser pour le rendu d'un effet doppler.

`AudioListener.speedOfSound` 
Obsolète

Nombre flottant à précision double représentant la vitesse du son, en *mètres par seconde*.

Dans une version précédente de la spécification, les propriétés `dopplerFactor` et `speedOfSound` et la méthode `setPosition()` pouvaient être utilisés pour contrôler un effet Doppler appliqué à un `AudioBufferSourceNode` connecté en aval. Ils pouvaient être transposés en fonction de la vitesse relative du `PannerNode` (en-US), et de l'`AudioListener`. Ces fonctionnalités soulevaient un certain nombre de problèmes :

* Seuls les `AudioBufferSourceNode` étaient transposés, pas les autres nœuds source.
* Le comportement à adopter lorsqu'un `AudioBufferSourceNode` était connecté à plusieurs `PannerNode` (en-US) n'était pas clair.
* Comme la vélocité du panoramique et de la personne qui écoute n'étaient pas des `AudioParam`, la modification du pitch ne pouvait pas être appliquée uniformément, ce qui provoquait des irrégularités dans le son.

C'est la raison pour laquelle elles ont été supprimées.

Les méthodes `setOrientation()` et `setPosition()` ont été remplacées par la capacité à modifier les valeurs des propriétés correspondantes. Ainsi, `setPosition(x, y, z)` pourra être réalisé en agissant sur les propriétés `positionX.value`, `positionY.value`, et `positionZ.value`.

Exemples
--------

Voir la page sur `BaseAudioContext.createPanner()` pour un exemple de code.

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

| Specification |
| --- |
| Web Audio API # AudioListener |

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*