0

我正在开发一个 createjs 应用程序,该应用程序需要加载 midi 文件作为其功能的一部分。然后我打算使用 midiplayer.js 来播放文件。但是,我找不到任何使用 createjs 加载 midi 文件的示例。似乎我想将它作为二进制文件加载,然后将其作为 ArrayBuffer 输入 midiplayer.js,它可以处理。我被困在如何在 createjs 中读取 BINARY 文件类型。这是我想要做的一些示例代码:

let queue = new createjs.LoadQueue();
queue.on("complete", assets_loaded);
queue.on("fileload", handle_file_load);
queue.loadManifest([
{id: "bach_score", src: "Bach_score.png"},
{id: "football_stage", src:"Football.png"},
{id: '1badbar1s', src: "exampleplayer/e1/1badbar1.mid", type: createjs.Types.BINARY}]);

一切似乎都很顺利。没有错误报告。我可以毫无问题地加载图像文件,如下所示:

let new_image = new createjs.Bitmap(queue.getResult("bach_score));

但是,我找不到如何加载二进制文件的示例。任何帮助表示赞赏。

所以这里有一个更新。看来我需要指定这是二进制类型。(我在上面添加了)。然后这应该调用binaryLoader类并给我我想要的东西。但是,它似乎不起作用。这可能是createjs中的错误吗?

###进一步更新:21 年 4 月 16 日

我挖掘了 createjs 代码并意识到发生了什么。由于我的文件的扩展名是 .mid (一个 midi 文件),soundjs 声称正在处理该文件。列出的扩展之一是 .mid 作为sound.js 的第 363 行的 SUPPORTED_EXTENSION。这检查了浏览器是否支持 MIDI 文件,但都不支持。我必须为此找到解决方法。

4

1 回答 1

0

我实际上想通了这一点。这是 createjs 中的一个错误(在我看来)。soundjs 模块说它可以处理一个 .mid 文件 (midi),但随后会检查浏览器,如果浏览器无法处理它,它会将其标记为 false。因此,它做出了无法兑现的承诺。我只需几行代码就可以修复它。它结束将文件作为原始二进制文件上传,您必须从那里处理它。SoundJS的 GitHub 上提供了更详细的描述

于 2021-04-26T15:40:28.347 回答