相关疑难解决方法(0)

加载音频缓冲区并使用音频标签播放

我正在尝试从 URL 加载音频缓冲区,然后播放它。我从这个HTML5 Rocks 教程中得到了大部分代码。

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();
Run Code Online (Sandbox Code Playgroud)

但是,然后我按下#play按钮,没有任何反应。source.noteOn(0)被调用,我使用调试器检查了它。并且所有对象都已正确加载和创建,但我听不到声音。

此外,看起来,当我使用这种方法时,我需要重建一个具有所有控件的完整播放器。我今天准备这样做,保存工作,并更好地保证这个作品,是把buffer<audio/>,因此它可以在那里玩。

我知道audio.src将文件名放在那里,但我需要使用音频缓冲区。我试过了

audio.src = buffer;
audio.load()
Run Code Online (Sandbox Code Playgroud)

但这没有用。

有什么资料吗?

html javascript html5-audio

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

html ×1

html5-audio ×1

javascript ×1