AudioListener

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

* 此特性的某些部分可能存在不同级别的支持。

AudioListener 接口代表了收听音频场景的唯一个人的位置和方向,并用于 音频空间化。所有 PannerNode 都会相对于存储在 BaseAudioContext.listener 属性中的 AudioListener 进行空间化。

需要注意的是,每个音频上下文中只有一个监听器,并且它不是一个 AudioNode

We see the position, up and front vectors of an AudioListener, with the up and front vectors at 90° from the other.

实例属性

注意: 位置、前方和上方的值通过不同的语法进行设置和检索。检索是通过访问,例如 AudioListener.positionX 来实现的,而设置同一属性则通过 AudioListener.positionX.value 来实现。这就是为什么这些值没有被标记为只读,尽管它们在规范的 IDL 中是这样显示的。

AudioListener.positionX

在右手笛卡尔坐标系中表示监听器的水平位置。默认为 0。

AudioListener.positionY

在右手笛卡尔坐标系中表示监听器的垂直位置。默认为 0。

AudioListener.positionZ

在右手笛卡尔坐标系中表示监听器的纵向(前后)位置。默认为 0。

AudioListener.forwardX

在与位置值(positionXpositionYpositionZ)相同的笛卡尔坐标系中,表示监听器前方方向的水平位置。前方和上方的值在数学上是相互独立的。默认为 0。

AudioListener.forwardY

在与位置值(positionXpositionYpositionZ)相同的笛卡尔坐标系中,表示监听器前方方向的垂直位置。前方和上方的值在数学上是相互独立的。默认为 0。

AudioListener.forwardZ

在与位置值(positionXpositionYpositionZ)相同的笛卡尔坐标系中,表示监听器前方方向的纵向(前后)位置。前方和上方的值在数学上是相互独立的。默认为 -1。

AudioListener.upX

在与位置值(positionXpositionYpositionZ)相同的笛卡尔坐标系中,表示监听器头部顶端的水平位置。前方和上方的值在数学上是相互独立的。默认为 0。

AudioListener.upY

在与位置值(positionXpositionYpositionZ)相同的笛卡尔坐标系中,表示监听器头部顶端的垂直位置。前方和上方的值在数学上是相互独立的。默认为 1。

AudioListener.upZ

在与位置值(positionXpositionYpositionZ)相同的笛卡尔坐标系中,表示监听器头部顶端的纵向(前后)位置。前方和上方的值在数学上是相互独立的。默认为 0。

实例方法

AudioListener.setOrientation() 已弃用

设置监听器的方向。

AudioListener.setPosition() 已弃用

设置监听器的位置。

注意: 尽管这些方法已弃用,但它们目前是 Firefox 中设置方向和位置的唯一方法(请参阅 Firefox bug 1283029)。

已弃用的功能

setOrientation()setPosition() 方法已被其属性值等效项替换。例如,可以通过分别设置 positionX.valuepositionY.valuepositionZ.value 来实现 setPosition(x, y, z)

示例

参阅 BaseAudioContext.createPanner() 的示例代码。

规范

规范
Web Audio API
# AudioListener

浏览器兼容性

另见