AudioBuffer - аудіо дані які перебувають у пам'яті.
AudioContext.createBuffer(numOfchannels, length, sampleRate);
AudioContext - об'єкт AudioContext.
numOfchannels - кількість каналів, який повинен мати цей буфер. Значення за замовчуванням дорівнює 1, браузери мають підтримувати щонайменше 32 канали.
length - розмір буфера.
sampleRate - частота дискретизації лінійних аудіоданих у зразкових кадрах в секунду. Значення повино бути від 8000 Гц до 96000 Гц. Значення можна брати з властивості AudioContext.sampleRate.
AudioBuffer це об'єкт який являє собою аудіо дані, що перебувають в пам'ять. Формат даних IEEE 32-розрядний лінійний PCM з номінальним діапазоном -1 ... +1.
Очікується що довжина даних AudioBuffer буде досить короткою, менше одної хвилини аудіо звуку.
Для тривалого звучання рекомендовано використовувати елемент аудіо та MediaElementAudioSourceNode.
Відтворення AudioBuffer можливо за допомогою AudioBufferSourceNode.
if(window.AudioContext){
var audio=new AudioContext();
var buffer= audio.createBuffer(1,2,4250);
alert(buffer);
}else alert('Ваш браузер не підтримує Web Audio');
if(window.AudioContext){
var audio=new AudioContext();
var source=audio.createBufferSource();
source.connect(audio.destination);
var myBuffer=audio.createBuffer(2, 64000, audio.sampleRate); //створюємо буфер довжиною 64000 з 2 каналами
//заповнюємо буфер випадковими даними
for(var i=0; i<myBuffer.length;i++){
myBuffer.getChannelData(0)[i]=Math.random()*2-1;
myBuffer.getChannelData(1)[i]=Math.random()*2-1;
}
source.buffer=myBuffer;
source.start(0); //починаємо відтворювати дані буфера
}else alert('Ваш браузер не підтримує Web Audio');