AudioBufferSourceNode.buffer
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.
AudioBufferSourceNode
接口的 buffer
属性提供了重复播放音频的能力,该音频使用 AudioBuffer
作为声音文件的来源。
如果 buffer
属性的值为 null
,节点会自动生成一个单声道的无声文件(所有采样均为 0)。
值
一个 AudioBuffer
,包含了节点将要播放的声音数据。
示例
js
const myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate);
button.onclick = function() {
// Fill the buffer with white noise;
//just random values between -1.0 and 1.0
for (let channel = 0; channel < channels; channel++) {
// This gives us the actual ArrayBuffer that contains the data
const nowBuffering = myArrayBuffer.getChannelData(channel);
for (let i = 0; i < frameCount; i++) {
// Math.random() is in [0; 1.0]
// audio needs to be in [-1.0; 1.0]
nowBuffering[i] = Math.random() * 2 - 1;
}
}
// Get an AudioBufferSourceNode.
// This is the AudioNode to use when we want to play an AudioBuffer
const source = audioCtx.createBufferSource();
// set the buffer in the AudioBufferSourceNode
source.buffer = myArrayBuffer;
规范
Specification |
---|
Web Audio API # dom-audiobuffersourcenode-buffer |
浏览器兼容性
BCD tables only load in the browser