我试图重建使用最开始写的旧节拍器应用MFC
在C++来编写的.NET
使用C#
.我遇到的一个问题是播放用于表示节拍器"点击"的midi文件.
我在网上发现了一些关于MIDI
在.NET中玩的文章,但是大多数文章似乎都依赖于有人拼凑在一起并提供的自定义库.我并不反对使用这些,但我宁愿自己理解这是如何完成的,因为它似乎应该是一个非常微不足道的练习.
那么,我错过了什么吗?或者在.NET应用程序中使用MIDI是否很困难?
我目前正在研究C#MIDI应用程序,其他人都是对的 - 你需要使用p/invoke.我正在自己动手,因为它似乎更适合应用程序(我只需要一小部分MIDI功能),但为了您的目的,C#MIDI工具包可能更适合.它至少是我找到的最好的.NET MIDI库,我在开始项目之前进行了广泛的搜索.
我认为你需要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);
希望这有帮助,祝你好运!