我正在使用Windows多媒體API記錄和處理波形音頻(waveInOpen
和朋友)。我想以循環方式使用少量的緩衝區。你可以在Windows波形音頻輸入中重複使用緩衝區嗎?
我知道在向設備添加緩衝區之前,您應該先使用waveInPrepareHeader
,並且在波形設備「將緩衝區返回給應用程序」之前以及在您釋放它之前,您應該調用waveInUnprepareHeader
。
我的問題是,我是否必須做好準備並重新準備才能重新使用緩衝區?或者我可以只將以前使用的緩衝區添加回設備?
另外,它是什麼線程我這樣做?我正在使用回調函數,它似乎在屬於音頻系統的工作線程上調用。在回調期間,我可以在該線程上撥打waveInUnprepareHeader
,waveInPrepareHeader
和waveInAddBuffer
嗎?
謝謝。它看起來像在waveInReset期間嘗試在回調期間調用waveInUnprepare是一個問題 - 它會導致死鎖。 – 2010-11-21 22:00:01
是的,waveInReset(和waveOutReset)中的死鎖很痛苦,並且取決於您擁有的聲卡驅動程序。 – 2010-11-21 23:02:46