如果我需要一声哔哔声,PlaySound 工作得很好。下面说明了我的代码片段:

PlaySound(TEXT("C:\\Test1.wav"), NULL, SND_ASYNC);

我的问题是,如何使用此功能两次或两次以上,因为无论我放在一起的重复次数如何,它都只会播放一次。我也试过这个:
PlaySound(TEXT("C:\\Test1.wav"), NULL,SND_FILENAME|SND_LOOP|SND_ASYNC);

它以连续循环播放哔哔声。如何玩这个两次或三次等?

使用循环对 也没有帮助。

最佳答案

问题是 SND_ASYNC 标志。它表示您希望此调用立即返回并在后台播放声音。

如果您在循环中执行此操作,由于它会在声音仍在播放的情况下返回,它将与下一次调用重叠并且什么也不做,因为 IIRC,一个应用程序只能同时调用一次 PlaySound。

解决方案是用 SND_ASYNC 替换 SND_SYNC(或删除它,因为它是默认值)。如果您需要异步调用,您可以创建一个线程并将您想要播放的声音排入队列。该线程将同步播放,但您的其他线程不会注意到。

关于c++ - 如何多次使用playsound功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23613822/

10-10 18:45