Есть следующий код:
function play(arraybuffer) {
let audioCtx = new AudioContext();
let audioData = arraybuffer;
audioCtx.decodeAudioData(
audioData,
function (buffer) {
let smp = audioCtx.createBufferSource();
smp.buffer = buffer;
smp.connect(audioCtx.destination);
smp.start(0);
},
function (e) {
console.log( "Error with decoding audio data: " + e.err );
}
);
}
console.log(sound); // Выведет ArrayBuffer(106488) {}
play(sound);
console.log(sound); // Выведет ArrayBuffer(0) {}
Буфер в переменную sound записывается из сокета, получаемого с сервера. Необходимо этот звук производить несколько раз, но как это сделать, если переменная обнуляется? Загружать ещё раз данные с сервера не очень хотелось бы.