AudioContext

翻译不完整。 请帮助我们翻译这篇文章!

AudioContext接口表示由链接在一起的音频模块构建的音频处理图,每个模块由一个AudioNode表示。音频上下文控制它包含的节点的创建和音频处理或解码的执行。在做任何其他操作之前,您需要创建一个AudioContext对象,因为所有事情都是在上下文中发生的。建议创建一个AudioContext对象并复用它,而不是每次初始化一个新的AudioContext对象,并且可以对多个不同的音频源和管道同时使用一个AudioContext对象。

构造函数

AudioContext()
创建并返回一个新的 AudioContext 对象。

属性

也从其父接口继承属性, BaseAudioContext.

AudioContext.baseLatency 只读
返回AudioContext将音频从AudioDestinationNode传递到音频子系统的处理延迟的秒数。
AudioContext.outputLatency 只读
返回对当前音频上下文的预估输出延迟。

方法

也从其父接口继承方法​​​​, BaseAudioContext.

AudioContext.close()
关闭一个音频环境, 释放任何正在使用系统资源的音频。
AudioContext.createMediaElementSource()
创建一个MediaElementAudioSourceNode接口来关联HTMLMediaElement. 这可以用来播放和处理来自<video><audio> 元素的音频。
AudioContext.createMediaStreamSource()
创建一个MediaStreamAudioSourceNode接口来关联可能来自本地计算机麦克风或其他来源的音频流MediaStream
AudioContext.createMediaStreamDestination()
创建一个MediaStreamAudioDestinationNode接口来关联可能储存在本地或已发送至其他计算机的MediaStream音频。
AudioContext.createMediaStreamTrackSource()
创建一个MediaStreamTrackAudioSourceNode,它与一个MediaStream相关联,表示一个媒体流轨迹。
AudioContext.getOutputTimestamp()
返回一个新的AudioTimestamp对象,该对象包含两个与当前音频上下文相关的音频时间戳。
AudioContext.resume()
恢复之前被暂停的音频上下文中的时间进程。
AudioContext.suspend()
暂停音频上下文中的时间进程,暂停音频硬件访问并减少进程中的CPU/电池使用。

例子

简单声明:

var audioCtx = new AudioContext;

跨浏览器的方式:

var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();

var oscillatorNode = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
var finish = audioCtx.destination;
// etc.

规范

规范 状态 注释
Web Audio API
AudioContext
Working Draft

浏览器兼容性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
AudioContextChrome Full support 35
Full support 35
No support 14 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 22
Full support 22
No support 15 — 44
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari Full support 6
Prefixed
Full support 6
Prefixed
Prefixed Implemented with the vendor prefix: webkit
WebView Android Full support YesChrome Android Full support 35
Full support 35
No support 18 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 26Opera Android Full support 22
Full support 22
No support 14 — 43
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari iOS Full support 6
Prefixed
Full support 6
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Samsung Internet Android Full support 3.0
Full support 3.0
No support 1.0 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
AudioContext() constructorChrome Full support 35
Notes
Full support 35
Notes
Notes Prior to Chrome 66, each tab is limited to 6 audio contexts in Chrome; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome.
Notes If latencyHint isn't valid, Chrome throws a TypeError exception. See Non-standard exceptions in Chrome for details.
No support 14 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 22
Notes
Full support 22
Notes
Notes Prior to Opera 53, each tab is limited to 6 audio contexts in Opera; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome.
Notes If latencyHint isn't valid, Opera throws a TypeError exception. See Non-standard exceptions in Chrome for details.
No support 15 — 44
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari Full support 6.1
Prefixed
Full support 6.1
Prefixed
Prefixed Implemented with the vendor prefix: webkit
WebView Android Full support 37
Notes
Full support 37
Notes
Notes Prior to WebView 66, each tab is limited to 6 audio contexts in WebView; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome.
Notes If latencyHint isn't valid, WebView throws a TypeError exception. See Non-standard exceptions in Chrome for details.
No support ≤37 — 44
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support 35
Notes
Full support 35
Notes
Notes Prior to Chrome 66, each tab is limited to 6 audio contexts in Chrome; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome.
Notes If latencyHint isn't valid, Chrome throws a TypeError exception. See Non-standard exceptions in Chrome for details.
No support 18 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 26Opera Android Full support 22
Notes
Full support 22
Notes
Notes Prior to Opera Android 47, each tab is limited to 6 audio contexts in Opera; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome.
Notes If latencyHint isn't valid, Opera throws a TypeError exception. See Non-standard exceptions in Chrome for details.
No support 14 — 43
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari iOS Full support 6.1
Prefixed
Full support 6.1
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Samsung Internet Android Full support 3.0
Notes
Full support 3.0
Notes
Notes Prior to Samsung Internet 9.0, each tab is limited to 6 audio contexts in Samsung Internet; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome.
Notes If latencyHint isn't valid, Samsung Internet throws a TypeError exception. See Non-standard exceptions in Chrome for details.
No support 1.0 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
baseLatency
Experimental
Chrome Full support 58Edge Full support 79Firefox Full support 70IE No support NoOpera Full support 45Safari No support NoWebView Android Full support 58Chrome Android Full support 58Firefox Android No support NoOpera Android Full support 43Safari iOS No support NoSamsung Internet Android Full support 7.0
closeChrome Full support 42Edge Full support 14Firefox Full support 40IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 40Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 4.0
createMediaElementSourceChrome Full support 14Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Firefox Android Full support 26Opera Android Full support 14Safari iOS Full support YesSamsung Internet Android Full support 1.0
createMediaStreamDestinationChrome Full support 14Edge Full support 79Firefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Firefox Android Full support 26Opera Android Full support 14Safari iOS Full support YesSamsung Internet Android Full support 1.0
createMediaStreamSourceChrome Full support 14Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Firefox Android Full support 26Opera Android Full support 14Safari iOS Full support YesSamsung Internet Android Full support 1.0
createMediaStreamTrackSourceChrome No support NoEdge No support NoFirefox Full support 68
Notes
Full support 68
Notes
Notes Firefox 68 implements the updated standard's definition of the "first" audio track; now the first track is the one whose ID comes first lexicographically.
IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 68
Notes
Full support 68
Notes
Notes Firefox 68 implements the updated standard's definition of the "first" audio track; now the first track is the one whose ID comes first lexicographically.
Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
getOutputTimestamp
Experimental
Chrome Full support 57Edge Full support 79Firefox Full support 70IE No support NoOpera Full support 44Safari No support NoWebView Android Full support 57Chrome Android Full support 57Firefox Android No support NoOpera Android Full support 43Safari iOS No support NoSamsung Internet Android Full support 7.0
outputLatencyChrome No support NoEdge No support NoFirefox Full support 70IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
resumeChrome Full support 41Edge Full support 14Firefox Full support 40IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support 41Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 4.0
suspendChrome Full support 43Edge Full support 14Firefox Full support 40IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 40Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 4.0

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
See implementation notes.
See implementation notes.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

相关链接