播放按钮声音而不停止在后台运行的音乐
Posted
技术标签:
【中文标题】播放按钮声音而不停止在后台运行的音乐【英文标题】:play button sound without stopping music running in the background 【发布时间】:2021-03-21 15:24:47 【问题描述】:我使用PlaySound(TEXT("background.wav"), NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);
在后台播放音乐。我的游戏中有一些按钮,当用户单击按钮时会播放短促的声音,并且会停止播放音乐。如何在整个游戏中保持音乐播放?我使用PlaySound(TEXT("button.wav"), NULL, SND_SYNC);
作为按钮声音。
【问题讨论】:
PlaySound 不适合播放音乐。 见Audio and Video。 【参考方案1】:我的游戏中有一些按钮在用户使用时会发出短促的声音 单击按钮,它将停止音乐。
您可以使用PlaySound
循环播放背景音乐。然后用mciSendString播放短音。
像这样:
//play music in the background
PlaySound(TEXT("background.wav"), NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);
...
//Press Button 1
mciSendString(L"close Sound_1", NULL, 0, NULL);//need to close first
LPCWSTR const Sound_File_1 = L"open button.wav type mpegvideo alias Sound_1";
mciSendString(Sound_File_1, NULL, 0, NULL);
MCIERROR play = mciSendString(L"play Sound_1", NULL, 0, NULL);
//Press Button 2
mciSendString(L"close Sound_2", NULL, 0, NULL);//need to close first
LPCWSTR const Sound_File_2 = L"open button_2.wav type mpegvideo alias Sound_2";
mciSendString(Sound_File_2, NULL, 0, NULL);
MCIERROR play = mciSendString(L"play Sound_2", NULL, 0, NULL);
您还可以使用mciSendString
循环播放背景音乐,具体取决于您的需要。
WCHAR str[] = L"background.wav";
LPCWSTR const Sound_File = L"open background.wav type mpegvideo alias Sound";
mciSendString(Sound_File, NULL, 0, NULL);
MCIERROR play = mciSendString(L"play Sound repeat", NULL, 0, NULL);
【讨论】:
以上是关于播放按钮声音而不停止在后台运行的音乐的主要内容,如果未能解决你的问题,请参考以下文章