如何在节目的同时播放声音?

时间:2011-06-11 22:33:55

标签: c++ asynchronous audio playsound

我希望在程序以c ++运行时播放声音。我正在使用代码:

 void fighterplanesound() 
{PlaySound(TEXT("bombdrop.wav"), NULL, SND_FILENAME|SND_ASYNC);}

我认为SND_ASYNC标志会解决这个问题,但事实并非如此。发生的事情是程序将暂停或控制在声音播放完毕之前不会继续。如何在程序继续运行时播放声音。为了澄清,该程序是一个在MS-DOS窗口中运行的Windows控制台程序。

3 个答案:

答案 0 :(得分:2)

如何在不同的线程中播放声音?

答案 1 :(得分:1)

确定。我想到的是你不能在函数中包含PlaySound方法,因为即使ASYNC标志存在,控制也必须在返回之前完全执行PlaySound方法,所以除非有更多,否则不要将它放在函数中函数中的代码(在这种情况下声音将在代码执行时播放)或换句话说,在PlaySound执行完毕之前控件不会从函数返回,并且因为函数中没有其他代码要执行,控制等待直到PlaySound方法完成然后继续。

答案 2 :(得分:0)

实际上我的iOS应用程序遇到了同样的问题。您知道播放.wav文件需要多长时间。您可以创建一个Timer,在文件结束时间的每个句点调用您的fighterplanesound()方法。不是最好的解决方案,但它对我有用。