Java中的Midi /二进制文件解码

问题描述

每当我尝试使用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" });
      });

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...