一次播放多个声音并继续我们离开的地方

时间:2015-05-13 02:51:14

标签: c++ audio

在我的节目中,目前我可以播放背景音乐。我的游戏是基于一个射击游戏,如果我按下一个按钮,我怎么能把它放在哪里,让我们说出向上箭头,它播放声音,然后播放声音,它继续我们离开的地方在背景音乐?这是我的代码:

#include <iostream>
#include <Windows.h>
#include <conio.h>
#pragma comment (lib , "winmm.lib") // Used for sound

using namespace std;

// Define key
#define KEY_UP 72       

int main()
{
    int key = 0;

    while(true)
    {
        PlaySound(TEXT("Background Music.wav"), NULL, SND_FILENAME|SND_ASYNC);
        key = _getch();

        if (key == KEY_UP)
            PlaySound(TEXT("GunSound.wav"), NULL, SND_FILENAME|SND_ASYNC);
    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

如果您希望连续播放背景音乐,则需要使用SND_LOOP参数。问题是在这种模式下,API会进入一种模式,在这种模式下,音乐不会停止,直到您使用NULL波形文件名进行调用。我敢打赌,如果你将背景音乐声音放在一个单独的线程上,这可以工作。如果你这样做,那么你的while循环应该继续工作。

如果你开始认真对待你的视频游戏,DirectSound绝对是你最好的选择。 CodeGuru上有很多示例应用程序可以执行此操作。