javascript - 从 Web SQL 数据库检索音频并使用 Web Audio API 播放

标签 javascript api web-audio-api arraybuffer

我有代码将 ArrayBuffer(从 XMLHttpRequest 调用获取 mp3 作为数组缓冲区)保存到 Web sql 数据库,从返回对象 ArrayBuffer 的 sql 查询中检索它。但是,当我尝试解码AudioData 或createBuffer 时,出现类型错误。

var buffer = audioContext.createBuffer(result.xtalk,false);

给出未捕获的类型错误:类型错误

如果我在 result.xtalk 中放置警报,则为对象 ArrayBuffer

这是在 Mac 上的 Chrome 21.0.1180.75 中

我尝试创建一个 ArrayBuffer 并逐字节填充它,然后传递它 - 但这也不起作用。

最佳答案

查看本教程。也许这会有所帮助

var dogBarkingBuffer = null;
var context = new webkitAudioContext();

function loadDogSound(url) {
  var request = new XMLHttpRequest();
  request.open('GET', url, true);
  request.responseType = 'arraybuffer';

   // Decode asynchronously
  request.onload = function() {
  context.decodeAudioData(request.response, function(buffer) {
    dogBarkingBuffer = buffer;
  }, onError);
}
request.send();

}

请参阅以下链接:- http://www.html5rocks.com/en/tutorials/webaudio/intro/

还对您正在接收的 arraybuffer 对象执行“typeof”。Arraybuffer 有一个名为 byteLength 的属性。

如果未定义,则表示您从 sql 数据库接收到的对象不是 arraybuffer 对象

引用:-https://developer.mozilla.org/en-US/docs/JavaScript_typed_arrays/ArrayBuffer

关于javascript - 从 Web SQL 数据库检索音频并使用 Web Audio API 播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938053/

相关文章:

angular - 将本地文件导入AudioWorkletProcessor文件时出现意外的标识符错误

javascript - HTML Web Audio API - 左右声道的音频可视化

audio - 网络音频调度改为立即播放

javascript - 在函数外获取值

javascript - Google map 在拖动时不会更新图 block

api - 存档来自 Twitter 的直接消息

swift - API 不支持 IPv6,应用被拒绝。我能做些什么?

javascript - 哪些 jQuery 方法可用于 jQuery 创建元素调用的对象参数?

javascript - JavaScript 中的 Audio() 标签

javascript - Youtube JavaScript API未初始化