2012-12-23 73 views
2

我在使用OpenAL庫錄製聲音時遇到了一個問題。我在這個問題上閱讀第二個答案:Recording Audio with OpenAL。但我不明白,我如何改變緩衝區大小。如果我改變了SSIZE,緩衝區大小爲441,程序崩潰了。如果你知道這個問題的答案,請給我解釋一下,我怎樣才能得到採樣率爲96000Hz的1ms緩衝器。 (陣列中有96個元素,1個通道,8位)。請幫幫我。用OpenAL(C++)錄製聲音。緩衝區大小

補充: 我改變了:

const int SRATE = 96000; 
const int SSIZE = 96; 

ALbyte buffer[SSIZE]; 
ALint sample; 

AL_FORMAT_STEREO16 

AL_FORMAT_MONO8 

,這給了我這個錯誤: enter image description here

+3

顯示您寫的代碼...還要記住,由於間接費用,不可能有1ms的緩衝區 – Goz

回答

1

我猜測由alcGetIntegerv返回的樣本數大於SSIZE ...

+0

After alcGetIntegerv採樣值始終爲0.如何才能發現緩衝區的已消除長度的準確值? – EXTRAM