我希望在程序以c ++运行时播放声音。我正在使用代码:
void fighterplanesound()
{PlaySound(TEXT("bombdrop.wav"), NULL, SND_FILENAME|SND_ASYNC);}
我认为SND_ASYNC标志会解决这个问题,但事实并非如此。发生的事情是程序将暂停或控制在声音播放完毕之前不会继续。如何在程序继续运行时播放声音。为了澄清,该程序是一个在MS-DOS窗口中运行的Windows控制台程序。
答案 0 :(得分:2)
如何在不同的线程中播放声音?
答案 1 :(得分:1)
确定。我想到的是你不能在函数中包含PlaySound方法,因为即使ASYNC标志存在,控制也必须在返回之前完全执行PlaySound方法,所以除非有更多,否则不要将它放在函数中函数中的代码(在这种情况下声音将在代码执行时播放)或换句话说,在PlaySound执行完毕之前控件不会从函数返回,并且因为函数中没有其他代码要执行,控制等待直到PlaySound方法完成然后继续。
答案 2 :(得分:0)
实际上我的iOS应用程序遇到了同样的问题。您知道播放.wav文件需要多长时间。您可以创建一个Timer,在文件结束时间的每个句点调用您的fighterplanesound()方法。不是最好的解决方案,但它对我有用。