[page:Object3D] →

# [name]

创建一个（ 全局 ) audio对象.
使用 [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].

## 代码示例

`// 创建一个 AudioListener 并将其添加到 camera 中 const listener = new THREE.AudioListener(); camera.add( listener ); // 创建一个全局 audio 源 const sound = new THREE.Audio( listener ); // 加载一个 sound 并将其设置为 Audio 对象的缓冲区 const audioLoader = new THREE.AudioLoader(); audioLoader.load( 'sounds/ambient.ogg', function( buffer ) { sound.setBuffer( buffer ); sound.setLoop( true ); sound.setVolume( 0.5 ); sound.play(); });`

## 例子

[example:webaudio_sandbox webaudio / sandbox ]
[example:webaudio_visualizer webaudio / visualizer ]

## 构造函数

### [name]( [param:AudioListener listener] )

listener — (必须) [page:AudioListener AudioListener] 的实例.

## 属性

### [property:Boolean autoplay]

是否自动开始播放. 默认为 *false*.

### [property:AudioContext context]

构造函数中传入[page:AudioListener listener]的[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].

### [property:Number detune]

修改音高，以音分为单位。 +/- 100为一个半音， +/- 1200为一个八度。默认值为0。

### [property:Array filters]

表示是一个 [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioNode AudioNodes] 数组。可用于应用各种低阶滤波器来创建更复杂的声音效果。在大多数情况下，该数组包含 [link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNodes] 的实例。通过 [page:Audio.setFilter] 或 [page:Audio.setFilters] 设置 filter。

### [property:GainNode gain]

使用[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain]()创建的[link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode].

### [property:Boolean hasPlaybackControl]

是否可以使用 [page:Audio.play play](), [page:Audio.pause pause]()等方法控制播放. 默认为 *true*.

### [property:Boolean isPlaying]

是否正在播放

### [property:AudioListener listener]

该 audio listener 对象的一个引用

### [property:Number playbackRate]

播放速率. 默认为 *1*.

### [property:Number offset]

音频开始播放的偏移时间. 和[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start]()的*offset*参数一样. 默认为 *0*.

### [property:Number duration]

覆盖音频的持续时间。与[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start]()中的*duration*属性相同。默认为*undefined*，以用于播放整个buffer。

### [property:AudioNode source]

使用 [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createBufferSource AudioContext.createBufferSource]()创建的[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode].

### [property:String sourceType]

音源的类型. 默认为 'empty'.

### [property:String type]

表示类型的字符串, 设置为'Audio'.

## 方法

### [method:this connect]()

连接[page:Audio.source]. 在初始化和设置/删除filters时使用.

### [method:this disconnect]()

断开连接[page:Audio.source]. 在设置/删除filters时使用.

### [method:BiquadFilterNode getFilter]()

返回 [page:Audio.filters filters] 数组的第一个元素.

### [method:Array getFilters]()

返回[page:Audio.filters filters] 数组.

### [method:Boolean getLoop]()

返回[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop] (是否循环播放)的值.

### [method:GainNode getOutput]()

返回[page:Audio.gain gainNode].

### [method:Float getPlaybackRate]()

返回[page:Audio.playbackRate playbackRate]的值.

### [method:Float getVolume]( value )

返回音量.

### [method:this play]( delay )

如果[page:Audio.hasPlaybackControl hasPlaybackControl]是true, 开始播放.

### [method:this pause]()

如果[page:Audio.hasPlaybackControl hasPlaybackControl]是true, 暂停播放.

### [method:undefined onEnded]()

播放完成后自动调用.

### [method:this setBuffer]( audioBuffer )

设置[page:Audio.source source]给audioBuffer, 和设置[page:Audio.sourceType sourceType]给'buffer'.
如果[page:Audio.autoplay autoplay]为true, 也开始播放.

### [method:this setFilter]( filter )

将单个 filter 节点应用在该 audio 上。

### [method:this setFilters]( [param:Array value] )

value - filter 数组。
将一组 filter 节点应用在该 audio 上。

### [method:this setLoop]( [param:Boolean value] )

设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop]的值 (是否循环播放).

### [method:this setLoopStart]( [param:Float value] )

设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopStart source.loopStart]的值

### [method:this setLoopEnd]( [param:Float value] )

设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopEnd source.loopEnd]的值

### [method:this setMediaElementSource]( mediaElement )

应用传入的[link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement]类型对象作为音源。
并且设置[page:Audio.hasPlaybackControl hasPlaybackControl]为false。

### [method:this setMediaStreamSource]( mediaStream )

应用传入的[link:https://developer.mozilla.org/en-US/docs/Web/API/MediaStream MediaStream]类型对象作为音源。
并且设置[page:Audio.hasPlaybackControl hasPlaybackControl]为false。

### [method:this setNodeSource]( audioNode )

设置[page:Audio.source source]给audioBuffer, 和设置[page:Audio.sourceType sourceType]给 'audioNode'.
并且设置[page:Audio.hasPlaybackControl hasPlaybackControl]为false.

### [method:this setPlaybackRate]( [param:Float value] )

如果[page:Audio.hasPlaybackControl hasPlaybackControl]是true, 设置[page:Audio.playbackRate playbackRate]（播放速率） 的值.

### [method:this setVolume]( [param:Float value] )

设置音量.

### [method:this stop]()

如果[page:Audio.hasPlaybackControl hasPlaybackControl]是true, 停止播放.

## 源码

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]