Web Audio API
摘要
描述了一个用于在 Web 应用程序中处理和合成音频的高级 JavaScript API。
- AudioBuffer
- 此接口表示驻留在内存中的音频资源,主要用于一次性声音和其他短音频片段。其格式为非交错的 IEEE 32 位线性 PCM,标称范围为 -1 -> +1。它可以包含一个或多个通道。
- AudioListener
- 此接口表示收听音频场景的人的位置和方向。所有 PannerNode 对象都相对于 AudioContext 的监听器进行空间定位。
- ChannelMergerNode
- 表示一个 AudioNode,用于将来自多个音频流的通道合并成单个音频流。通常与 ChannelSplitterNode 结合使用。
- ChannelSplitterNode
- 表示一个 AudioNode,用于访问音频路由图中音频流的各个通道。通常与 ChannelMergerNode 结合使用。
- ConvolverNode
- 此接口表示一个处理节点,它根据脉冲响应应用线性卷积效果。
- GainNode
- 改变音频信号的增益是音频应用程序中的一项基本操作。 GainNode 是创建混音器的基本构建块之一。此接口是一个 AudioNode,具有单个输入和单个输出,它将输入音频信号乘以(可能随时间变化的)增益属性,并将结果复制到输出。
- OscillatorNode
- OscillatorNode 表示生成周期性波形的音频源。可以将其设置为几种常用的波形。此外,可以通过使用 WaveTable 对象将其设置为任意周期性波形。振荡器是音频合成中常见的基本构建块。
- WaveTable
- WaveTable 表示要与 OscillatorNode 配合使用的任意周期性波形。
用法
This specification describes a high-level JavaScript API for processing and synthesizing audio in web applications. The primary paradigm is of an audio routing graph, where a number of AudioNode objects are connected together to define the overall audio rendering. The actual processing will primarily take place in the underlying implementation (typically optimized Assembly / C / C++ code), but direct JavaScript processing and synthesis is also supported.
此 API 设计用于与其他 Web 平台 API 和元素结合使用,特别是:XMLHttpRequest(使用 responseType 和 response 属性)。对于游戏和交互式应用程序,预计它将与 canvas 2D 和 WebGL 3D 图形 API 结合使用。