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.
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.
规范
Specification |
---|
Web Audio API # AudioContext |
浏览器兼容性
BCD tables only load in the browser