The buffer property of the AudioBufferSourceNode interface represents an AudioBuffer that defines the audio asset to be played.
If the buffer property is set to the value NULL, it defines a single channel of silence.
Syntax
var source = audioCtx.createBufferSource(); // from audioCtx.createBuffer, or audioCtx.decodeAudioData source.buffer = myBuffer;
Value
An AudioBuffer.
Example
Note: For a full working example, see this code running live, or 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;
Specifications
| Specification | Status | Comment |
|---|---|---|
| Web Audio API The definition of 'buffer' in that specification. |
Working Draft | Initial definition |
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support | Not supported[1] | 23.0 (23.0) | Not supported | 15 webkit 22 |
6 webkit |
detune property |
(Yes) | 40.0 (40.0) | Not supported | ? | ? |
| Feature | Android | Chrome | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Basic support | Not supported | 28 webkit | 25.0 (25.0) | 1.2 | Not supported | Not supported | 6 webkit |
detune property |
Not supported | (Yes) | (Yes) | (Yes) | Not supported | Not supported | ? |
[1] Removed in Chrome version 44.0. Was supported with a webkit prefix from version 14.
See also
Document Tags and Contributors
Tags:
Contributors to this page:
Sebastianz,
fscholz,
jpmedley,
kevincennis,
padenotmoz,
teoli,
chrisdavidmills
Last updated by:
Sebastianz,