如何停止/暂停线程播放的wav文件?

时间:2015-03-16 16:17:10

标签: multithreading visual-studio-2010 visual-c++ audio

我创建了一个专门用于播放wav的线程。主线程用于Win32表单GUI(VS 2010)。当收到停止或暂停请求时,我可以使用waveOutpause或waveOutClose函数。但是,在C ++编程中只是一个初学者,我不太清楚我应该如何使用该函数。我知道上面的函数不能直接从线程外部调用来播放wav。是否存在简单的解决方案?

1 个答案:

答案 0 :(得分:0)

主线程可以使用SetEvent / ResetEvent来控制WAV线程的停止/运行状态。 WAV线程每次围绕其播放循环调用WaitForSingleObject(0超时)以感知事件状态。

同样,您可以使用第二个事件在暂停后恢复播放。当WAV线程在非信号事件(具有INFINITE超时)上调用WaitForSingleObject时,线程被挂起,等待事件发出信号。