AudioBufferSourceNode.buffer

AudioBufferSourceNode 接口的 buffer 属性提供了重复播放音频的能力,该音频使用 AudioBuffer 作为声音文件的来源。

如果 buffer 属性的值为 null, 节点会自动生成一个单声道的无声文件(所有采样均为0)。

语法

AudioBufferSourceNode.buffer = soundBuffer;

返回值

AudioBuffer包含了节点将要播放的声音数据

示例

完整的示例请查看  this code running live,或  view the source。

var 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 (var channel = 0; channel < channels; channel++) {
   // This gives us the actual ArrayBuffer that contains the data
   var nowBuffering = myArrayBuffer.getChannelData(channel);
   for (var 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
  var source = audioCtx.createBufferSource();
  // set the buffer in the AudioBufferSourceNode
  source.buffer = myArrayBuffer;

规范

Specification Status Comment
Web Audio API
buffer
Working Draft Initial definition

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support14 Yes251 No156
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic support Yes14 Yes261 No15 ?

1. Firefox currently handles the value null incorrectly. Instead of producing a node that generates a single channel of silence, the node becomes unusable and will be ignored if you attempt to connect it to anything.

相关链接

文档标签和贡献者

 此页面的贡献者: dancci
 最后编辑者: dancci,