[page:Object3D] →

# [name]

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

## 例子

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

`// create an AudioListener and add it to the camera var listener = new THREE.AudioListener(); camera.add( listener ); // create a global audio source var sound = new THREE.Audio( listener ); // load a sound and set it as the Audio object's buffer var audioLoader = new THREE.AudioLoader(); audioLoader.load( 'sounds/ambient.ogg', function( buffer ) { sound.setBuffer( buffer ); sound.setLoop( true ); sound.setVolume( 0.5 ); sound.play(); });`

## 构造函数

### [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/BiquadFilterNode BiquadFilterNodes]的数组. 可以使用多种不同的低阶filters去创建复杂的音效. filters可以通过 [page:Audio.setFilter] 或者 [page:Audio.setFilters]设置.

### [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:Number playbackRate]

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

### [property:Boolean isPlaying]

是否正在播放

### [property:AudioListener listener]

A reference to the listener object of this audio.

### [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:String 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:Audio connect]()

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

### [method:Audio 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:Audio play]( delay )

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

### [method:Audio pause]()

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

### [method:null onEnded]()

播放完成后自动调用.

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

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

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

设置一个[link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNode]给Audio.

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

value--filters数组.
应用[link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNodes]数组给Audio.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

设置音量.

### [method:Audio stop]()

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

## 源码

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