c++ - 播放按钮声音而不停止在后台运行的音乐
问题描述
我PlaySound(TEXT("background.wav"), NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);
习惯在后台播放音乐。我的游戏中有一些按钮,当用户单击按钮时会播放短促的声音并停止播放音乐。如何在整个游戏中保持音乐播放?我PlaySound(TEXT("button.wav"), NULL, SND_SYNC);
用于按钮声音。
解决方案
我的游戏中有一些按钮,当用户单击按钮时会播放短促的声音并停止播放音乐。
您可以使用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);
推荐阅读
- flask - Flask appbuilder如何替换注册表单?
- sql - 在 sql 中选择 end_date >= start_date 的行,每个 ID 重复多次
- c++ - 编译 sqlite 文档代码时出错
- node.js - NodeJS Express 中间件在没有 next() 的情况下转到下一个
- python - 如何检查班级?
- macos - Intellij 2018.3:导入设置 Mac?
- java - Kubernetes 和 Java:检索 Service 背后的 Pod IP
- java - Java - 添加多个长溢出/下溢检查
- r - 使用短语机器 (R) 从提取的短语列表中创建文档特征矩阵
- angular - 离子虚拟滚动的离子4列不起作用