Я пытаюсь загрузить звуковой буфер с URL-адреса, а затем воспроизвести его. Я получил большую часть кода этого HTML5 Rocks Tutorial.Загрузка звукового буфера и воспроизведение его с помощью звукового тега
var request = new XMLHttpRequest();
request.open('GET', $(this).attr('data-url'), true);
request.responseType = 'arraybuffer';
request.onload = function() {
console.log(request);
context.decodeAudioData(request.response, function(buffer) {
console.log(buffer);
$('#play').click(function() {
var source = context.createBufferSource();
source.connect(context.destination);
source.noteOn(0);
}).removeAttr('disabled');
}, function(err) { console.log(err); });
};
request.send();
Однако затем я нажимаю кнопку #play
, ничего не происходит. source.noteOn(0)
, я проверил его с помощью отладчика. И все объекты правильно загружены и созданы, но я не слышу звука.
Кроме того, как мне кажется, мне нужно будет перестроить полноценного игрока со всеми элементами управления, когда я использую этот подход. То, что я хотел бы сделать, чтобы сохранить работу и обеспечить ее работу лучше, заключается в том, чтобы поставить buffer
в <audio/>
, чтобы его можно было сыграть там.
Я знаю, что есть audio.src
для размещения имени файла, но мне нужно использовать звуковой буфер. Я пробовал
audio.src = buffer;
audio.load()
Но это не сработало.
Есть ли данные?