来自<input type =“file”/>

时间:2018-02-02 08:35:41

标签: javascript cors

我有一个使用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">

访问的LOCAL文件

我遇到了麻烦......我尝试过使用:

var reader = new FileReader();
reader.readAsArrayBuffer(files[0]);    

audioContext.decodeAudioData(reader,
     function(buffer) {
         currentBuffer = buffer;
         displayBuffer(buffer);
}, onDecodeError);

但这似乎不起作用。

我意识到这也可能存在CORS问题?

我最终还需要使用cordova以及可能的cordova-file-plugin才能使用它?我认为readAsArrayBuffer并不是真的支持。

任何提示都将不胜感激。最后一块拼图。

0 个答案:

没有答案