我看过所有关于FileReader和readAsArrayBuffer()的类似问题,但是没有运气。
我正在尝试使用Web Audio API读取本地mp3文件,并使用FileReader对其进行处理,以便将其用于一些音乐可视化。
以下是我目前所拥有的:
var file = "../../audio/magic_coldplay.mp3";
var fileReader = new FileReader();
fileReader.onload = function (e) {
var fileResult = e.target.result;
visualizer.start(fileResult);
};
fileReader.onerror = function (e) {
debugger
};
fileReader.readAsArrayBuffer(file);
我遇到了这个错误:“在'FileReader'上执行'readAsArrayBuffer'失败:参数1不是'Blob'类型。”
看来文件不是一个Blob对象。我在网上看到的例子都是用户上传自己的mp3文件。那么我如何才能让本地的mp3文件也能工作呢?
如果您有任何建议,谢谢您!
file
是一个字符串,而不是 File 或 Blob 对象... 如果该字符串代表指向文件的有效 URI,则可以执行fetch(file).then(r=>r.blob()).then(blob=>fileReader.readAsArrayBuffer(blob))
。 - Kaiido