首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ Win32 -如何用mciSendString()循环MIDIs?

C++ Win32 -如何用mciSendString()循环MIDIs?
EN

Stack Overflow用户
提问于 2014-03-25 18:20:15
回答 1查看 1.6K关注 0票数 0

我正在制作一个游戏,我试图用mciSendString()循环一个MIDI文件。我看过CProgramming.com,但是示例的窗口对象是OWL,无法移植它们。我也试着看Brian的问题,但答案只有两行代码。我看过MSDN,但这是一个参考,而不是一个教程。添加重复并不能发挥任何作用。这是我到目前为止掌握的代码:

代码语言:javascript
复制
mciSendString("open PUG1.MID type sequencer alias music", NULL, 0, NULL);
mciSendString("play music", NULL, 0, NULL);

如果你帮忙,我一定会把你放进学分的。谢谢!:)

编辑:我试图处理通知标志,但我的代码不能工作。它一旦播放主题,就停止了。

代码语言:javascript
复制
    //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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 21:58:35

您可以在歌曲结束时通知notify标志。

这似乎是可行的:

代码语言:javascript
复制
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命令发送到某个位置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22643121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档