此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

AudioBuffer:length 属性

基线 广泛可用

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

AudioBuffer 接口的 length 属性返回一个表示缓冲区中存储的 PCM 数据的长度的整数(以采样帧数为单位)。

一个整数。

示例

js
// 立体声
const channels = 2;

// 以 AudioContext 的采样率创建一个 2 秒的空白立体声缓冲区
const frameCount = audioCtx.sampleRate * 2.0;
const myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate);

button.onclick = () => {
  // 用白噪声填充缓冲区;
  // 即介于 -1.0 和 1.0 之间的随机值
  for (let channel = 0; channel < channels; channel++) {
    // 获取实际包含音频数据的
    const nowBuffering = myArrayBuffer.getChannelData(channel);
    for (let i = 0; i < frameCount; i++) {
      // Math.random() 的取值范围是 [0; 1.0]
      // 音频数据的取值范围应为 [-1.0; 1.0]
      nowBuffering[i] = Math.random() * 2 - 1;
    }
  }

  console.log(myArrayBuffer.length);
};

规范

规范
Web Audio API
# dom-audiobuffer-length

浏览器兼容性

参见