进行无障碍
Make PlaySound non-blocking
本文关键字:无障碍 更新时间:2023-10-16
我一直在测试声音,我注意到PlaySound
正在阻止,即等待直到声音播放才播放才能返回。
#include <iostream>
#include <Windows.h>
#include <mmsystem.h>
int main()
{
PlaySound("E:/Downloads/eb_sfx_archive/brainshock.wav", 0, SND_FILENAME);
std::cout << "this sound is cool";
Sleep (500);
std::cout << "nmeh... not really";
return 0;
}
此代码播放声音,但是它等待输出"此声音很酷",直到声音播放后。我该怎么做不做?
异步播放声音:
PlaySound(L"E:\Downloads\eb_sfx_archive\brainshock.wav", NULL, SND_ASYNC);
来自MSDN文档:
声音会异步播放,并且
PlaySound
在开始声音后立即返回。要终止异步播放的波形声音,请将其设置为NULL
的PlaySound
致电CC_3。
使用标志SND_ASYNC
播放声音异步。
即:
PlaySound("E:/Downloads/eb_sfx_archive/brainshock.wav", 0, SND_FILENAME | SND_ASYNC);
SND_ASYNC
标志使PlaySound
立即返回而无需等待声音完成播放。
另外,如果您需要停止在不播放其他声音的情况下停止播放声音(循环或异步),请使用以下语句:
PlaySound(NULL, NULL, 0);
此处的更多信息和示例(使用弹奏到循环声音)和此处(弹奏函数)。
相关文章: