Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript midi从base64编码的midi转换_Javascript_Parsing_Base64_Midi - Fatal编程技术网

Javascript midi从base64编码的midi转换

Javascript midi从base64编码的midi转换,javascript,parsing,base64,midi,Javascript,Parsing,Base64,Midi,是否可以在base64编码的midi数据中使用卓越的性能 我的数据如下所示: data:audio/midi;base64,TVRoZAAAAAYAAQAOAeBNVHJrAAAALwD/Awl... 我希望在浏览器中执行此操作。我能够使用以下方法使其工作,将base64编码数据转换为Blob,以便可以使用FileReader读取,从而使其能够与midConvert.parse一起使用: () 嗨,科迪,谢谢你的帮助!在运行代码时,我从midiconvert中得到一个“str.substr不是

是否可以在base64编码的midi数据中使用卓越的性能

我的数据如下所示:

data:audio/midi;base64,TVRoZAAAAAYAAQAOAeBNVHJrAAAALwD/Awl...

我希望在浏览器中执行此操作。

我能够使用以下方法使其工作,将base64编码数据转换为
Blob
,以便可以使用
FileReader
读取,从而使其能够与
midConvert.parse
一起使用:

()


嗨,科迪,谢谢你的帮助!在运行代码时,我从midiconvert中得到一个“str.substr不是函数”错误。有什么想法吗?@Hoff-Hmm,不确定。你用的是什么浏览器?这里有一个代码笔,其中有一个在Chrome70上运行的完整的最小示例:非常感谢,您的代码运行得非常完美!你救了我一天!
dataURItoBlob = dataURI => {
  const byteString = atob(dataURI.split(',')[1]);
  const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];

  let ab = new ArrayBuffer(byteString.length);
  let ia = new Uint8Array(ab);
  for (let i = 0; i < byteString.length; i++) {
    ia[i] = byteString.charCodeAt(i);
  }

  return new Blob([ab], {type: mimeString});
};

parseMidiFromDataURI = dataURI => {
  const reader = new FileReader();
  reader.onload = e => {
    const partsData = MidiConvert.parse(e.target.result);
    console.log(JSON.stringify(partsData, undefined, 2));
  };
  reader.readAsArrayBuffer(dataURItoBlob(dataURI));
};

parseMidiFromDataURI("data:audio/midi;base64,TVRoZAAAAAYAAAABAeBNVHJrAAAA5wD/WAQEAhgIAP9RAwehIADAAADAAGWQXH8AwABlgFx/AMAAZZBZfwDAAGWAWX8AwABlkFZ/AMAAZYBWfwDAAGWQQ38AkEF/AJBCfwCQQH8AkD9/AMlPAJlPfwDAAACQU38AwABlgEN/AMAAZYBCfwDAAGWAP38AwABlgFN/AMAAZZBDfwDJTwCZT38AwAAAkFB/AMAAZYBBfwDAAGWJT38AwABliQB/AMAAZcAAZYBAfwDAAGWAUH8AwABlkE1/AMAAZYBDfwDAAGXAAGWATX8AwABlwABlwABlwABlwABlkDh/AP8vAA==");
{
  "header": {
    "PPQ": 480,
    "timeSignature": [
      4,
      4
    ],
    "bpm": 120,
    "name": ""
  },
  "startTime": 0.10520833333333333,
  "duration": 2.8406249999999984,
  ...