c++ Win32 -如何使用mciSendString()循环midi
C++ Win32 - How to loop MIDIs with mciSendString()?
我正在制作一款游戏,我正在尝试使用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;
您可以使用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
命令。
相关文章:
- 如何循环打印顶点结构
- 如何在C++中从两个单独的for循环中添加两个数组
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 正在尝试了解输入验证循环
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 循环后如何继续阅读
- Ardunio UNO解决了多个重叠的定时器循环
- Eigen如何在容器循环中干净地附加矩阵
- 在某些循环内使用vector.push_back时出现分段错误
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 为什么我的for循环不能正确获取argv
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- while循环中while循环的时间复杂度是多少
- C++中的高效循环缓冲区,它将被传递给C样式数组函数参数
- 为什么在这个代码结束循环中没有得到结束
- 在基于范围的for循环中使用结构化绑定声明
- 用于C++中带有数组和指针的循环
- 循环中的随机函数
- 是什么阻止DOMTimerCoordinator::NextID进入无休止的循环
- c++ Win32 -如何使用mciSendString()循环midi