2015-04-18 43 views
0

我使用Apple的SpeakHere示例代碼。 這裏是我的mRecordFormat:音頻隊列記錄期間接收到的字節總數

mRecordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked; 
mRecordFormat.mChannelsPerFrame = 1; 
mRecordFormat.mBitsPerChannel = 16; 
mRecordFormat.mBytesPerPacket = mRecordFormat.mBytesPerFrame = (mRecordFormat.mBitsPerChannel/8) * mRecordFormat.mChannelsPerFrame; 
mRecordFormat.mFramesPerPacket = 1; 
mRecordFormat.mSampleRate = 11025.0; 

我記錄7秒,我以爲我會收到 7 * 2個* 11025字節(或7 * 11025短)總的信息。 其實我總共收到了一點點:154784而不是154350字節(更多434字節)。這個數字不一樣。爲什麼它正在改變?

有人請解釋爲什麼我得到更多的字節,然後我期待? 我錯了還是錯過了什麼?

順便說一句:我錄製的.wav格式,如果這有幫助。

回答

0

AudioQueue給你一定大小的音頻塊。尺寸選擇適合實施。這就解釋了爲什麼當你停止隊列時,你會看到更多(或更少)的結果。

如果您想準確記錄7秒鐘的音頻,請在收到正好7秒鐘的樣本並丟棄剩餘物後停止隊列。

+0

感謝您的回答,其實我試圖做的是:我正在播放7秒的音頻,並行錄製結果。音頻播放時我正在停止錄音。音頻播放時我停止錄音。我想在播放音頻之前會發生一些延遲。您能否建議我如何檢測7秒鐘的錄音?提前致謝。 –