进行无障碍

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在开始声音后立即返回。要终止异步播放的波形声音,请将其设置为NULLPlaySound致电CC_3。

使用标志SND_ASYNC播放声音异步。

即:

PlaySound("E:/Downloads/eb_sfx_archive/brainshock.wav", 0, SND_FILENAME | SND_ASYNC);

SND_ASYNC标志使PlaySound立即返回而无需等待声音完成播放。

另外,如果您需要停止在不播放其他声音的情况下停止播放声音(循环或异步),请使用以下语句:

PlaySound(NULL, NULL, 0);

此处的更多信息和示例(使用弹奏到循环声音)和此处(弹奏函数)。

相关文章: