Цель приведенного ниже кода — гарантировать, что каждый раз, когда запускается прослушиватель событий, звук воспроизводится на 2 секунды вперед. В нынешнем виде это работает только при первом запуске события. Все последующие события mousedown воспроизводят файл немедленно. Ищу подсказку, как это исправить.
var audioContext = new webkitAudioContext;
function AudioObj(fileDirectory) {
var soundObj = {};
soundObj.fileDirectory = fileDirectory;
var getSound = new XMLHttpRequest();
getSound.open("GET", soundObj.fileDirectory, true);
getSound.responseType = "arraybuffer";
getSound.onload = function() {
audioContext.decodeAudioData(getSound.response, function(buffer) {
soundObj.soundToPlay = buffer;
});
}
getSound.send();
soundObj.play = function(time) {
var playSound = audioContext.createBufferSource();
playSound.buffer = soundObj.soundToPlay;
playSound.connect(audioContext.destination);
playSound.start(time );
}
return soundObj;
}
var snare = AudioObj("snare.mp3");
window.addEventListener("mousedown", go);
function go(){
snare.play(2)
}