2009-08-06 36 views
1

因此.wav文件有幾個標準塊。在我使用的大多數文件中,「RIFF」塊首先是「fmt」塊,然後是「DATA」塊。使用AVAudioRecorder進行錄製時,會創建這些塊(儘管在「DATA」塊之前會創建一個額外的「FLLR」。)使用AudioQueue創建文件時缺少塊

使用AudioQueue創建文件時,不會創建這些標準塊。相反,AudioQueue依次創建「caff」,「desc」,「lpcm」,「free」和「data」塊。

發生了什麼事?不需要「RIFF」和「fmt」塊?如何強制包含這些塊?

我通過創建一個文件:

AudioFileCreateWithURL(URL,kAudioFileCAFType,& inputDataFormat,kAudioFileFlags_EraseFile,&的AudioFile);

inputDataFormat是一個具有完整屬性的AudioStreamBasicDescription。

那麼,如何用AudioQueue編寫至少「RIFF」和「fmt」塊?

謝謝。

回答

1

所以.wav文件有幾個標準塊。 ...

使用AudioQueue創建文件時,不會創建這些標準塊。 ...

我通過創建一個文件:

AudioFileCreateWithURL(URL, kAudioFileCAFType, &inputDataFormat, kAudioFileFlags_EraseFile, &AudioFile); 

讓這成爲顯示一個人的問題,一個代碼的價值的一個例子。 :-)

kAudioFileCAFType是一個核心音頻文件,而不是一個WAV文件。改爲嘗試kAudioFileWAVEType

+0

我可以吻你!謝謝!! – 2009-08-06 06:23:04