我正在制作游戏,我正在尝试使用mciSendString()循环MIDI文件。我看过CProgramming.com,但示例的窗口对象是OWL,我无法移植它们。我也试过看Brian Gradin的问题,但答案只包含两行代码。我查看了MSDN,但这就像一个参考而不是教程。添加重复不会发挥任何作用。这是我到目前为止的代码:
mciSendString("open PUG1.MID type sequencer alias music", NULL, 0, NULL);
mciSendString("play music", NULL, 0, NULL);
如果你有帮助,那么我一定会把你归入学分。 谢谢! :)
编辑:我试图处理通知标志,但我的代码不起作用。它播放主题一旦它停止。
//At the end of WM_CREATE...
mciSendString("open MUSIC\\PUG2.MID type sequencer alias music", NULL, 0, NULL);
mciSendString("play music", NULL, 0, NULL);
break;
case MM_MCINOTIFY:
mciSendString("seek music to start", NULL, 0, NULL);
mciSendString("play music", NULL, 0, NULL);
break;
答案 0 :(得分:3)
您可以在歌曲结束时通知notify
标志。
这似乎有效:
case WM_CREATE:
mciSendString("open pickin0.mid type sequencer alias music", NULL, 0, NULL);
mciSendString("play music notify", NULL, 0, hWnd);
break;
case MM_MCINOTIFY:
mciSendString("seek music to start", NULL, 0, NULL);
mciSendString("play music notify", NULL, 0, hWnd);
break;
使用notify命令时需要传递窗口句柄,以便它可以在某处发送MM_MCINOTIFY
命令。