当我用Playsound播放音乐时 . PlaySound("XX.wav",NULL,SND_ASYNC|SND_LOOP) 如果我播放另一个.wav文件,它会停止此文件(XX.wav) .
PlaySound("XX.wav",NULL,SND_ASYNC|SND_LOOP)
我认为线程可以避免这个问题 . 但是如何在WinApi中实现它?Threadfunc的外观如何?
当我按下SPACE时想要停止音乐时如何使用它但我不想在我打电话给另一个PlaySound时停止它 .
PlaySound() 一次只能播放一个声音 . 线程不会改变这一点 . 要同时播放多个声音,您需要:
PlaySound()
1)自己将音频帧混合在一起,然后将音频缓冲区推到 waveOutWrite() .
waveOutWrite()
2)使用DirectSound API的播放功能 . 它允许您在播放期间mix multiple sounds together .
我建议#2 .
1 回答
PlaySound()
一次只能播放一个声音 . 线程不会改变这一点 . 要同时播放多个声音,您需要:1)自己将音频帧混合在一起,然后将音频缓冲区推到
waveOutWrite()
.2)使用DirectSound API的播放功能 . 它允许您在播放期间mix multiple sounds together .
我建议#2 .