使用C#播放MIDI声音的最佳方式

jer*_*ith 20 .net c# midi

我试图重建使用最开始写的旧节拍器应用MFC在C++来编写的.NET使用C#.我遇到的一个问题是播放用于表示节拍器"点击"的midi文件.

我在网上发现了一些关于MIDI在.NET中玩的文章,但是大多数文章似乎都依赖于有人拼凑在一起并提供的自定义库.我并不反对使用这些,但我宁愿自己理解这是如何完成的,因为它似乎应该是一个非常微不足道的练习.

那么,我错过了什么吗?或者在.NET应用程序中使用MIDI是否很困难?

Kje*_*jær 11

我目前正在研究C#MIDI应用程序,其他人都是对的 - 你需要使用p/invoke.我正在自己动手,因为它似乎更适合应用程序(我只需要一小部分MIDI功能),但为了您的目的,C#MIDI工具包可能更适合.它至少是我找到的最好的.NET MIDI库,我在开始项目之前进行了广泛的搜索.

  • Leslie的MIDI工具包绝对是播放,录制MIDI的最全面的C#解决方案.我用它来做一个非常复杂的项目,效果很好. (2认同)

Joh*_*bly 10

我认为你需要p/invoke到windows api才能从.net播放midi文件.

这个代码项目文章很好地解释了如何执行此操作: vb.net文章播放midi文件

要重写这个是c#,你需要mciSendString的以下import语句:

[DllImport("winmm.dll")] 
static extern Int32 mciSendString(String command, StringBuilder buffer, 
                                  Int32 bufferSize, IntPtr hwndCallback);
Run Code Online (Sandbox Code Playgroud)

希望这有帮助,祝你好运!