我正在创建一个Chrome应用程序,用于解密从我的PBX服务器发送到我的Gmail帐户的mp3并播放它们。我已经完成了除gmail中的音频播放器之外的所有内容。我有两个选择:
我希望尽可能多地重用代码,并且无法找到带有搜索栏的预制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");
});
它失败了"无法执行' createObjectURL'在' URL':未找到与提供的签名匹配的功能。"我该如何正确编码这个函数来创建一个可以被chrome的mp3播放器或soundmanager2使用的网址?
答案 0 :(得分:1)
您需要首先创建一个Blob,并将其作为 createObjectURL
的参数传递....
const blob = new Blob([soundBuffer], { type: "audio/wav" });
audio.src = window.URL.createObjectURL(blob);
....
答案 1 :(得分:0)
是的,你可以做到
https://developer.mozilla.org/en-US/docs/Web/API/MediaSource