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

瀏覽器相容性

另見