BaseAudioContext
Web 音频 API 中的 BaseAudioContext 接口为在线和离线音频处理图提供了基础定义,分别由 AudioContext 和 OfflineAudioContext 表示。您不会直接使用 BaseAudioContext,而是通过这两个继承的接口之一来使用它的功能。
BaseAudioContext 可以是事件的目标,因此它实现了 EventTarget 接口。
实例属性
BaseAudioContext.audioWorklet只读 安全上下文-
返回
AudioWorklet对象,可用于创建和管理AudioNode,其中实现AudioWorkletProcessor接口的 JavaScript 代码在后台运行以处理音频数据。 BaseAudioContext.currentTime只读-
返回一个双精度浮点数,表示用于调度的不断增加的硬件时间(以秒为单位)。它从
0开始。 BaseAudioContext.destination只读-
返回一个
AudioDestinationNode,表示上下文中所有音频的最终目的地。可以将其视为音频渲染设备。 BaseAudioContext.listener只读-
返回
AudioListener对象,用于 3D 空间化。 BaseAudioContext.sampleRate只读-
返回一个浮点数,表示此上下文中所有节点使用的采样率(每秒采样数)。
AudioContext的采样率不可更改。 BaseAudioContext.state只读-
返回
AudioContext的当前状态。
实例方法
还实现了 EventTarget 接口的方法。
BaseAudioContext.createAnalyser()-
创建一个
AnalyserNode,可用于暴露音频时域和频域数据,例如用于创建数据可视化。 BaseAudioContext.createBiquadFilter()-
创建一个
BiquadFilterNode,表示一个二阶滤波器,可配置为多种常见的滤波器类型:高通、低通、带通等。 BaseAudioContext.createBuffer()-
创建一个新的、空的
AudioBuffer对象,然后可以填充数据并通过AudioBufferSourceNode播放。 BaseAudioContext.createBufferSource()-
创建一个
AudioBufferSourceNode,可用于播放和操作AudioBuffer对象中包含的音频数据。AudioBuffer使用AudioContext.createBuffer()创建,或者在成功解码音频轨道时由AudioContext.decodeAudioData()返回。 BaseAudioContext.createConstantSource()-
创建一个
ConstantSourceNode对象,它是一个音频源,可连续输出单声道(单通道)声音信号,所有样本值都相同。 BaseAudioContext.createChannelMerger()-
创建一个
ChannelMergerNode,用于将多个音频流的通道合并到单个音频流中。 BaseAudioContext.createChannelSplitter()-
创建一个
ChannelSplitterNode,用于访问音频流的各个通道并单独处理它们。 BaseAudioContext.createConvolver()-
创建一个
ConvolverNode,可用于将卷积效果(例如混响效果)应用于您的音频图。 BaseAudioContext.createDelay()-
创建一个
DelayNode,用于将输入的音频信号延迟一定量。此节点还有助于在 Web 音频 API 图中创建反馈循环。 BaseAudioContext.createDynamicsCompressor()-
创建一个
DynamicsCompressorNode,可用于对音频信号应用声学压缩。 BaseAudioContext.createGain()-
创建一个
GainNode,可用于控制音频图的整体音量。 BaseAudioContext.createIIRFilter()-
创建一个
IIRFilterNode,表示一个二阶滤波器,可配置为多种常见的滤波器类型。 BaseAudioContext.createOscillator()-
创建一个
OscillatorNode,这是一个代表周期性波形的源。它基本上生成一个音调。 BaseAudioContext.createPanner()-
创建一个
PannerNode,用于在 3D 空间中对输入的音频流进行空间化。 BaseAudioContext.createPeriodicWave()-
创建一个
PeriodicWave,用于定义可用于确定OscillatorNode输出的周期性波形。 BaseAudioContext.createScriptProcessor()已弃用-
创建一个
ScriptProcessorNode,可用于通过 JavaScript 直接进行音频处理。 BaseAudioContext.createStereoPanner()-
创建一个
StereoPannerNode,可用于对音频源应用立体声声像。 BaseAudioContext.createWaveShaper()-
创建一个
WaveShaperNode,用于实现非线性失真效果。 BaseAudioContext.decodeAudioData()-
异步解码
ArrayBuffer中包含的音频文件数据。在这种情况下,通常在将responseType设置为arraybuffer后,从XMLHttpRequest的response属性加载ArrayBuffer。此方法仅适用于完整文件,不适用于音频文件的片段。
事件
statechange-
当
AudioContext的状态因调用其中一个状态更改方法(AudioContext.suspend、AudioContext.resume或AudioContext.close)而改变时触发。
示例
const audioContext = new AudioContext();
const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;
规范
| 规范 |
|---|
| Web Audio API # BaseAudioContext |
浏览器兼容性
加载中…