我有一个使用XMLHttpRequest()
解码来自给定网址的音频数据的函数。
function loadMusic(url) {
var req = new XMLHttpRequest();
req.open("GET", url, true);
req.responseType = "arraybuffer";
req.onreadystatechange = function(e) {
if (req.readyState == 4) {
if (req.status == 200)
audioContext.decodeAudioData(req.response,
function(buffer) {
currentBuffer = buffer;
displayBuffer(buffer);
}, onDecodeError);
else
alert('error during the load.Wrong url or cross origin issue');
}
};
req.send();
}
function onDecodeError() {
alert('error while decoding your file.');
}
我需要能够使用从<input type="file">
我遇到了麻烦......我尝试过使用:
var reader = new FileReader();
reader.readAsArrayBuffer(files[0]);
audioContext.decodeAudioData(reader,
function(buffer) {
currentBuffer = buffer;
displayBuffer(buffer);
}, onDecodeError);
但这似乎不起作用。
我意识到这也可能存在CORS问题?
我最终还需要使用cordova以及可能的cordova-file-plugin才能使用它?我认为readAsArrayBuffer并不是真的支持。
任何提示都将不胜感激。最后一块拼图。