首页 文章

如何在线程中播放声音?

提问于
浏览
0

当我用Playsound播放音乐时 . PlaySound("XX.wav",NULL,SND_ASYNC|SND_LOOP) 如果我播放另一个.wav文件,它会停止此文件(XX.wav) .

我认为线程可以避免这个问题 . 但是如何在WinApi中实现它?Threadfunc的外观如何?

当我按下SPACE时想要停止音乐时如何使用它但我不想在我打电话给另一个PlaySound时停止它 .

1 回答

  • 4

    PlaySound() 一次只能播放一个声音 . 线程不会改变这一点 . 要同时播放多个声音,您需要:

    1)自己将音频帧混合在一起,然后将音频缓冲区推到 waveOutWrite() .

    2)使用DirectSound API的播放功能 . 它允许您在播放期间mix multiple sounds together .

    我建议#2 .

相关问题