AudioBuffer.copyToChannel() - копіює дані з масиву у вказаний каналу.
AudioBuffer.copyToChannel(source, channelNumber, startInChannel);
AudioBuffer - об'єкт AudioBuffer.
source - масив Float32Array з якого необхідно скопіювати дані у вказаний канал.
channelNumber - номер каналу в який необхідно скопіювати дані.
startInChannel - не обов'язково вказувати. З якого індексу починати копіювати дані. Значення по замовчуванню 0.
copyToChannel() метод об'єкту AudioBuffer який копіює дані з масиву Float32Array у вказаний канал.
var audioCtx = new window.AudioContext();
var myArrayBuffer = audioCtx.createBuffer(1, 3, audioCtx.sampleRate);
var mas = new Float32Array(myArrayBuffer.length); //створюємо масив
mas[0]=0.2567753195762634;
mas[1]=0.8018139072077896;
mas[2]=0.0201101058025454;
myArrayBuffer.copyToChannel(mas, 0); //копіюємо дані в 1 канал
alert( myArrayBuffer.getChannelData(0) );
var audioCtx = new window.AudioContext();
var myArrayBuffer = audioCtx.createBuffer(2, 45000, audioCtx.sampleRate); //створюємо буфер на 2 канали
var source=audioCtx.createBufferSource();
source.connect(audioCtx.destination);
var mas1=new Float32Array(myArrayBuffer.length), mas2=new Float32Array(myArrayBuffer.length);
//заповнюємо масиви випадковими даними
for(var i=0; i<mas1.length; i++){
mas1[i]=Math.random()*2-1;
mas2[i]=Math.random()*2-1;
}
myArrayBuffer.copyToChannel(mas1, 0);
myArrayBuffer.copyToChannel(mas2, 1);
source.buffer=myArrayBuffer;
source.start(0); //починаємо відтворення аудіо буфера