在没有文件的情况下播放HTML5中javascript的音频-使用缓冲区


Play audio from javascript in HTML5 WITHOUT a file - using buffer

我使用jQuery的ajax方法在服务器上调用一个PHP脚本,该脚本将向我返回一个mp3文件,因此我在一个变量中拥有成功函数的数据。现在我想为那个人播放那个音频。我使用的是HTML5,但我看到的每个例子都希望你指向一个有音频的文件。我没有把它作为一个文件,我有它在记忆中。

以下是开始使用WebAudio API的方法。theAjaxResponse应该是来自服务器的二进制mp3响应。

window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
context.decodeAudioData(theAjaxResponse, function(buffer) {
      var source = context.createBufferSource();
      source.buffer = buffer;
      source.connect(context.destination);
      source.start(0);
}, onError);

这只适用于支持Web Audio API的现代浏览器。