【发布时间】:2010-10-07 17:35:12
【问题描述】:
我使用此代码为我的游戏播放一个 MIDI 文件,但我听不到扬声器发出的任何声音。你能帮我吗?有点急事,求... 我的扬声器已打开;)
[DllImport("winmm.dll", EntryPoint="mciSendStringA")]
private static extern long mciSendString(string lpstrCommand, string lpstrReturnString, long uReturnLength, long hwndCallback);
public static long PlayMidiFile(string MidiFile)
{
long lRet = -1;
if (File.Exists(MidiFile))
{
lRet = mciSendString("stop midi", "", 0, 0);
lRet = mciSendString("close midi", "", 0, 0);
lRet = mciSendString(("open sequencer!"
+ (MidiFile + " alias midi")), "", 0, 0);
lRet = mciSendString("play midi", "", 0, 0);
return lRet;
}
else
{
//Error Message
return lRet;
}
}
【问题讨论】:
-
阅读这个:stackoverflow.com/questions/8763/…,就在顶部,看起来你的 pinvoke 签名搞砸了。参数 2 是一个缓冲区。
-
而且参数 3 和 4 也是错误的。这是从 VB6 代码复制而来的。