问题描述
每当我尝试使用tone.js解析它们时,我都会使用Axios将一些midi文件返回给客户端,我会遇到一些编码问题:
Uncaught (in promise) Bad MIDI file. Expected 'MTrk',got: '¿½MT'
我尝试使用FileReader,按照this post复制到类型化数组,但是无论如何我都会遇到相同的错误。
这是有问题的方法:
static convertMidiToJson(midi: Blob) {
let result = new Midi();
midi.arrayBuffer().then((it) => {
result = new Midi(it);
});
return result;
}
midi只是结果。来自Axios调用的数据。
任何帮助都将不胜感激!
解决方法
我在axios调用中错过了responseType:blob。添加完之后,它可以正确解析:
return axios
.get(it.data,{
responseType: "blob",})
.then((itr) => {
return new Blob([itr.data],{ type: "audio/midi" });
});