低级音频播放器与C#播放口吃 - 修复?

时间:2015-10-06 16:44:43

标签: c# multithreading audio buffer waitone

我正在开展一个小项目(只是为了好玩),它允许我显示当前音频缓冲区中播放的频率。

计划是:

正在执行n-1方法的线程继续播放和重新填充两个音频缓冲区。当第一个缓冲区正在播放时,第二个缓冲区会重新填充,反之亦然。为了确保一个缓冲区在另一个缓冲区停止播放之前没有开始播放,我使用WaveOutPlayer.ThreadProc()方法。在缓冲区的音频数据被WaitOne()设备播放后,将调用缓冲区的WaveOut方法。这种方法取消了等待。

播放本身开始播放,但非常不稳定。

有人能告诉我为什么会这样吗?

OnCompleted()项目位于http://www.pour-toujours.net/lowlevelaudio.zip

(目前,仅支持16位,立体声,44,1kHz未压缩的wav。)

这里有一些似乎相关的代码:

Visual Studio

0 个答案:

没有答案