java - 在网页中发送 MIDI 消息

标签 java javascript html activex midi

如何在网页中播放单个 MIDI 音符?

我知道有两种方法:

  1. 编写一个 ActiveX 控件。那么它只能在 Windows 上运行。我很早以前就写过ActiveX控件,但是现在没人喜欢安装它们了。

  2. 编写一个 Java 小程序。如果用户已经安装了 Java,那么这是可以的,但许多用户禁用小程序。我就是这样做的,如果它恰好适用于您的特定设置,您可以在 newfweiler.com 上看到结果。您至少需要 Java 5,尽管我想如果必须的话我可以用 Java 1.2 重写它。 “实时音序器”和“Java 声音合成器”对我不起作用;我认为你必须安装波表或其他东西才能使其工作。

大多数用户都安装了 Flash,但我查看了 Flash 和 Flex 文档,没有看到任何与 javax.sound.midi 等效的内容。

在网页中播放 MIDI 文件的方法有多种,您可以找到“Javascript Pianos”,只要您按下一个键即可播放单音符 MIDI 文件。您无法同时演奏多个音符或按住琴键演奏长音符。

我想做的相当于 javax.sound.midi.Receiver.send(midiMsg, -1) ,仅使用大多数人通常安装在计算机上的内容。

最佳答案

使用 Web Audio API 播放声音和 .mid 文件。请参阅 MIDI 播放器示例 https://surikov.github.io/webaudiofont/examples/midiplayer.html

使用Web MIDI API(Chrome支持)来监听MIDI键盘。请参阅 https://surikov.github.io/webaudiofont/examples/midikey.html 中的示例

关于java - 在网页中发送 MIDI 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/928957/

相关文章:

java - 同步方法

java - 使用 Jsch Java API 获取远程系统时间戳

java - Spring AMQP 处理已删除的队列

html - 使图像在单击时打开模态?

html - 贯穿 HTML 页面的水平线

html - 移动响应列

java - 类型参数 T 扩展类不允许类在方法中用作 T 参数

javascript - angularjs 中的 ng-else 指令

javascript - 等待异步调用完成 - 太晚了

javascript - 在 ACE 编辑器中以编程方式折叠代码