是否可以使用 createjs 加载 midi 文件?
Posted
技术标签:
【中文标题】是否可以使用 createjs 加载 midi 文件?【英文标题】:Is it possible to load a midi file using createjs? 【发布时间】:2021-04-13 01:42:30 【问题描述】:我正在开发一个 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 作为line 363 of sound.js 上的 SUPPORTED_EXTENSION。这检查了浏览器是否支持 MIDI 文件,但都不支持。我必须为此找到解决方法。
【问题讨论】:
【参考方案1】:我真的想通了。这是 createjs 中的一个错误(在我看来)。 soundjs 模块说它可以处理一个 .mid 文件 (midi),但随后会检查浏览器,如果浏览器无法处理它,它会将其标记为 false。因此,它做出了无法兑现的承诺。我只需几行代码就可以修复它。它结束将文件作为原始二进制文件上传,您必须从那里处理它。更详细的描述可在GitHub for SoundJS
【讨论】:
以上是关于是否可以使用 createjs 加载 midi 文件?的主要内容,如果未能解决你的问题,请参考以下文章
使用 PreloadJS 加载图像并将它们添加到 CreateJS 阶段
有啥方法可以在不使用文件的情况下将 MIDI 加载到 AKAppleSequencer 或 AKSequencer 中?