AudioContext

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

* Some parts of this feature may have varying levels of support.

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

EventTarget BaseAudioContext 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/电池使用。

例子

简单声明:

js
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.

规范

Specification
Web Audio API
# AudioContext

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
AudioContext
AudioContext() constructor
options.latencyHint parameter
options.sampleRate parameter
options.sinkId parameter
Experimental
baseLatency
close
createMediaElementSource
createMediaStreamDestination
createMediaStreamSource
createMediaStreamTrackSource
error event
Experimental
getOutputTimestamp
outputLatency
resume
setSinkId
Experimental
sinkId
Experimental
sinkchange event
Experimental
suspend

Legend

Tip: you can click/tap on a cell for more information.

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

参见