Здесь что-то странное. создать аудио магазин буфера в переменной и попытаться повторно использовать его несколько раз - но это, кажется, поврежденweb audio buffer странное поведение
Я делаю несколько кнопок
<button onclick="play();">play(0)</button>
<button onclick="playsection();">play section</button>
<button onclick="stop();">stop()</button>
Получить некоторые аудио данные
context = new AudioContext();
var getWav = new XMLHttpRequest();
var wavbuf;
getWav.open("GET", "/wav/test.wav", true);
getWav.responseType = "arraybuffer";
getWav.onload = function() {
context.decodeAudioData(getWav.response, function(buffer){
wavbuf = buffer;
});
}
getWav.send();
var p;
я могу оценить игру() несколько раз без ошибки
function play(){
p = context.createBufferSource();
p.buffer = wavbuf;
p.connect(context.destination);
p.start(0);
}
playsection, кажется, работает только один раз - или иногда больше, чем один раз, если я нажимаю остановить до того остановки (10) оценивает
function playsection(){
p = context.createBufferSource();
p.buffer = wavbuf;
p.connect(context.destination);
p.start(0, 6); // start after 6 seconds
p.stop(10); // stop after 10 seconds
}
function stop(){
p.stop();
}
Похоже p.buffer = wavbuf создает указатель в буфер, а не копию
Это ошибка или функция?
Да - спасибо Это в разделе спецификации 2.10.2 https://webaudio.github.io/web-audio-api/#the-audi obuffer-интерфейс –