我正在创建一个Chrome应用程序,该应用程序可以解密从我的PBX服务器发送到我的Gmail帐户的MP3并播放它们。除了在Gmail中的音频播放器之外,我已经完成了所有内容。我有两个选择:
- 使用Web Audio API(我已经成功实现了,但无法弄清楚如何制作完全功能的搜索栏)。
- 从数组创建createObjectURL并将其传递给audio标记或soundmanager2。
我想尽可能地重用代码,并且一直没有找到一个预先制作的带有搜索栏的Web Audio API播放器。所以,我尝试了选项2,并且以下是我所做的全部内容。
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
context.decodeAudioData(arr.buffer, function (soundBuffer) {
windowURL = window.URL || window.webkitURL;
var audio = document.createElement("audio");
audio.src = windowURL.createObjectURL([soundBuffer]);
var someDiv = document.getElementById("testDiv");
someDiv.appendChild(audio);
audio.onload = function (e) {
windowURL.revokeObjectURL(this.src);
}
}, function (err) {
console.log("couldnt decode buffer");
});
它会出现 "Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided." 的错误。我应该如何正确编写这个函数以创建一个可以被 Chrome 的 mp3 播放器或 SoundManager2 使用的 URL?