Silverlight 可以与 MIDI 乐器通信吗?

Posted

技术标签:

【中文标题】Silverlight 可以与 MIDI 乐器通信吗?【英文标题】:Can Silverlight communicate with a MIDI instrument? 【发布时间】:2009-10-19 12:06:03 【问题描述】:

Silverlight 能否与连接到运行 Silverlight 应用程序的机器的 MIDI 乐器通信?进出浏览器。

【问题讨论】:

【参考方案1】:

这在 Silverlight 中似乎是不可能的。要与 MIDI 设备通信,您必须在 winmm.dll 中 PInvoke 方法,而这(显然)不能在 Silverlight 中完成。见:

http://forums.silverlight.net/forums/t/123673.aspx

这可以在 WPF 或 WinForms 应用程序中轻松完成。它也可以在带有 XBAP 的浏览器中完成,尽管您需要提升权限才能访问 winmm API,这需要证书。您仍然可以使用 .Net 制作 ActiveX 控件,但我认为您仍然需要一个证书才能获得适当的权限(尽管它可能只适用于一个可怕的安全确认对话框)。

【讨论】:

【参考方案2】:

无法直接在 Silverlight 中使用 .NET 代码,因为 Silverlight 具有不同的核心。

您要在 Silverlight 中引用的所有 .NET 类都需要为 Silverlight 重新编译。

也不可能直接访问底层硬件,所以我担心你会被完全信任的 XBAP 困住(你需要签署你的应用程序,用户会收到一个请求许可的弹出窗口)。 XBAP 在浏览器中运行时为您提供所有 .NET 功能。 XBAP 将在任何安装了 .net 3.0 的 >xp 机器上的 firefox/internet explorer 上运行。

希望这会有所帮助。

【讨论】:

【参考方案3】:

Silverlight 3 具有用于音频和视频的可扩展多媒体管道。您可以按程序创建自己的音频并播放。要实现您想要的,您必须编写自己的 midi 合成器。

【讨论】:

我不想弹midi,我根本不想发出任何声音,我想从midi乐器上读midi。

以上是关于Silverlight 可以与 MIDI 乐器通信吗?的主要内容,如果未能解决你的问题,请参考以下文章

演奏世间所有乐器——Midi设备到底有多神奇?

如何在 unix 中将 midi 音符输出到 midi 乐器?

播放多乐器 MIDI 文件

如何在 Java MIDI 程序中更改乐器

BLE MIDI开发 BLE MIDI 硬件电子乐器设备需要遵循的相关规范 ( 资料收集 )

Java 从 MIDI 序列中获取乐器列表