AudioContext
interface represents an audio-processing graph built from audio modules linked together, each represented by an
AudioNode
.
An audio context controls both the creation of the nodes it contains and the execution of the audio processing, or decoding. You need to create an
AudioContext
before you do anything else, as everything happens inside a context. It's recommended to create one AudioContext and reuse it instead of initializing a new one each time, and it's OK to use a single
AudioContext
for several different audio source and pipeline concurrently.
<div id="interfaceDiagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveAspectRatio="xMinYMin meet"><a xlink:href="../API/EventTarget.html" target="_top"><rect x="1" y="1" width="110" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="56" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">EventTarget</text></a><polyline points="111,25 121,20 121,30 111,25" stroke="#D4DDE4" fill="none"/><line x1="121" y1="25" x2="151" y2="25" stroke="#D4DDE4"/><a xlink:href="../API/AudioContext" target="_top"><rect x="151" y="1" width="120" height="50" fill="#F4F7F8" stroke="#D4DDE4" stroke-width="2px" /><text x="211" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">AudioContext</text></a></svg></div>
a:hover text { fill: #0095DD; pointer-events: all;}
AudioContext()
AudioContext
对象。
Also inherits properties from its parent interface,
BaseAudioContext
.
AudioContext.baseLatency
只读
AudioContext
passing the audio from the
AudioDestinationNode
to the audio subsystem.
AudioContext.outputLatency
只读
Returns an estimation of the output latency of the current audio context.
Also inherits methods from its parent interface,
BaseAudioContext
.
AudioContext.close()
Closes the audio context, releasing any system audio resources that it uses.
AudioContext.createMediaElementSource()
MediaElementAudioSourceNode
associated with an
HTMLMediaElement
. This can be used to play and manipulate audio from
<video>
or
<audio>
元素。
AudioContext.createMediaStreamSource()
MediaStreamAudioSourceNode
associated with a
MediaStream
representing an audio stream which may come from the local computer microphone or other sources.
AudioContext.createMediaStreamDestination()
MediaStreamAudioDestinationNode
associated with a
MediaStream
representing an audio stream which may be stored in a local file or sent to another computer.
AudioContext.createMediaStreamTrackSource()
MediaStreamTrackAudioSourceNode
associated with a
MediaStream
representing an media stream track.
AudioContext.getOutputTimestamp()
AudioTimestamp
object containing two audio timestamp values relating to the current audio context.
AudioContext.resume()
Resumes the progression of time in an audio context that has previously been suspended/paused.
AudioContext.suspend()
Suspends the progression of time in the audio context, temporarily halting audio hardware access and reducing CPU/battery usage in the process.
Basic audio context declaration:
var audioCtx = new AudioContext();
Cross browser variant:
var AudioContext = window.AudioContext || window.webkitAudioContext; var audioCtx = new AudioContext(); var oscillatorNode = audioCtx.createOscillator(); var gainNode = audioCtx.createGain(); var finish = audioCtx.destination; // etc.
| 规范 | 状态 | 注释 |
|---|---|---|
|
Web 音频 API
The definition of 'AudioContext' in that specification. |
工作草案 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
AudioContext
|
Chrome
35
|
Edge ≤18 | Firefox 25 | IE 不支持 No |
Opera
22
|
Safari
6
Prefixed
|
WebView Android Yes |
Chrome Android
35
|
Firefox Android 26 |
Opera Android
22
|
Safari iOS
6
Prefixed
|
Samsung Internet Android
3.0
|
AudioContext()
构造函数
|
Chrome
55
注意事项
|
Edge ≤18 | Firefox 25 | IE 不支持 No | Opera 42 |
Safari
Yes
Prefixed
|
WebView Android 55 |
Chrome Android
55
注意事项
|
Firefox Android 26 | Opera Android 42 |
Safari iOS
Yes
Prefixed
|
Samsung Internet Android
6.0
注意事项
|
baseLatency
|
Chrome 58 | Edge ≤79 | Firefox 70 | IE 不支持 No | Opera 45 | Safari 不支持 No | WebView Android 58 | Chrome Android 58 | Firefox Android 不支持 No | Opera Android 43 | Safari iOS 不支持 No | Samsung Internet Android 7.0 |
close
|
Chrome 42 | Edge 14 | Firefox 40 | IE 不支持 No | Opera Yes | Safari Yes | WebView Android 43 | Chrome Android 43 | Firefox Android 40 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android 4.0 |
createConstantSource
|
Chrome
不支持
14 — 56
Prefixed
注意事项
|
Edge 不支持 ≤18 — 79 |
Firefox
不支持
25 — ?
注意事项
|
IE 不支持 No |
Opera
不支持
22 — 43
注意事项
|
Safari
不支持
6 — ?
Prefixed
注意事项
|
WebView Android
不支持
? — 56
注意事项
|
Chrome Android
不支持
18 — 56
注意事项
|
Firefox Android
不支持
26 — ?
注意事项
|
Opera Android
不支持
22 — 43
注意事项
|
Safari iOS 不支持 No |
Samsung Internet Android
不支持
1.0 — 6.0
注意事项
|
createMediaElementSource
|
Chrome 14 | Edge 12 | Firefox 25 | IE 不支持 No | Opera 15 | Safari 6 | WebView Android Yes | Chrome Android 18 | Firefox Android 26 | Opera Android 14 | Safari iOS Yes | Samsung Internet Android 1.0 |
createMediaStreamDestination
|
Chrome 14 | Edge ≤18 | Firefox 25 | IE 不支持 No | Opera 15 | Safari 6 | WebView Android Yes | Chrome Android 18 | Firefox Android 26 | Opera Android 14 | Safari iOS Yes | Samsung Internet Android 1.0 |
createMediaStreamSource
|
Chrome 14 | Edge 12 | Firefox 25 | IE 不支持 No | Opera 15 | Safari 6 | WebView Android Yes | Chrome Android 18 | Firefox Android 26 | Opera Android 14 | Safari iOS Yes | Samsung Internet Android 1.0 |
createMediaStreamTrackSource
|
Chrome 不支持 No | Edge 不支持 No |
Firefox
68
注意事项
|
IE 不支持 No | Opera 不支持 No | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 No |
Firefox Android
68
注意事项
|
Opera Android 不支持 No | Safari iOS 不支持 No | Samsung Internet Android 不支持 No |
getOutputTimestamp
|
Chrome 57 | Edge ≤79 | Firefox 70 | IE 不支持 No | Opera 44 | Safari 不支持 No | WebView Android 57 | Chrome Android 57 | Firefox Android 不支持 No | Opera Android 43 | Safari iOS 不支持 No | Samsung Internet Android 7.0 |
outputLatency
|
Chrome 不支持 No | Edge 不支持 No | Firefox 70 | IE 不支持 No | Opera 不支持 No | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 No | Firefox Android 不支持 No | Opera Android 不支持 No | Safari iOS 不支持 No | Samsung Internet Android 不支持 No |
resume
|
Chrome 41 | Edge ≤18 | Firefox 40 | IE 不支持 No | Opera Yes | Safari Yes | WebView Android Yes | Chrome Android 41 | Firefox Android Yes | Opera Android Yes | Safari iOS Yes | Samsung Internet Android 4.0 |
suspend
|
Chrome 43 | Edge 14 | Firefox 40 | IE 不支持 No | Opera Yes | Safari Yes | WebView Android 43 | Chrome Android 43 | Firefox Android 40 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android 4.0 |
完整支持
不支持
实验。期望将来行为有所改变。
见实现注意事项。
要求使用供应商前缀或不同名称。
AudioContext
AnalyserNode
AudioBuffer
AudioBufferSourceNode
AudioContextOptions
AudioDestinationNode
AudioListener
AudioNode
AudioNodeOptions
AudioParam
AudioProcessingEvent
AudioScheduledSourceNode
AudioWorklet
AudioWorkletGlobalScope
AudioWorkletNode
AudioWorkletProcessor
BaseAudioContext
BiquadFilterNode
ChannelMergerNode
ChannelSplitterNode
ConstantSourceNode
ConvolverNode
DelayNode
DynamicsCompressorNode
GainNode
IIRFilterNode
MediaElementAudioSourceNode
MediaStreamAudioDestinationNode
MediaStreamAudioSourceNode
OfflineAudioCompletionEvent
OfflineAudioContext
OscillatorNode
PannerNode
PeriodicWave
StereoPannerNode
WaveShaperNode