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
.
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
, etpositionZ
). 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 est0
. 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
, etpositionZ
). 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 est0
. 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
, etpositionZ
). 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
, etpositionZ
). 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 est0
. 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
, etpositionZ
). 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 est1
. 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
, etpositionZ
). 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 est0
.
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é à plusieursPannerNode
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