AudioListener

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

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 sont spatialisés par rapport à l'objet AudioListener stocké dans la propriété BaseAudioContext.listener.

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.

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

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

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

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

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

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

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

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

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

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() Obsolète

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

AudioListener.setPosition() 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, 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 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

Voir aussi