在C#中调用 winmm.dll(Windows Multimedia Library)来播放 MIDI 文件通常涉及使用mciSendString 函数,该函数是 winmm.dll 中提供的一个函数,用于发送 MCI(Media Control Interface)命令给MCI设备。
但是,需要注意的是,直接通过 mciSendString 播放 MIDI 文件可能需要一些特定的设置和配置,因为MIDI通常是通过MIDI输出设备(如声卡上的MIDI端口或MIDI合成器)来播放的,而不是通过默认的音频输出设备。
编写一个简单的示例 play_mid.cs,说明如何在C#中使用 P/Invoke 调用 mciSendString 函数来尝试播放 MIDI 文件:
using System;
using System.IO;
using System.Text;
using System.Threading;
using System.Runtime.InteropServices;
class MidiPlayer
{
// 导入 mciSendString 函数
[DllImport("winmm.dll")]
private static extern int mciSendString(string command, StringBuilder buffer, int bufferSize, IntPtr hwndCallback);
// 播放MIDI文件的函数
public static void PlayMidi(string midiFileName)
{
const int bufferSize = 128;
StringBuilder returnBuffer = new StringBuilder(bufferSize);
// 构建MCI命令来打开并播放MIDI文件
string command = "open \"" + midiFileName + "\"

最低0.47元/天 解锁文章
1758

被折叠的 条评论
为什么被折叠?



