2009-08-06 2 views
1

Так что .wav-файл имеет несколько стандартных кусков. В большинстве файлов, с которыми я работаю, сначала находится фрагмент «RIFF», затем фрагмент «fmt», затем блок «DATA». При записи с использованием AVAudioRecorder эти куски создаются (хотя перед блоком «DATA» создается дополнительный «FLLR»).Отсутствующие куски при создании файла с помощью AudioQueue

При создании файла с AudioQueue эти стандартные куски не создаются. Вместо этого AudioQueue создает в порядке, «caff», «desc», «lpcm», «free» и «data» chunks.

Что происходит? Не нужны ли «RIFF» и «fmt» куски? Как принудительно включить эти куски?

Я создаю файл по:

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

с inputDataFormat является AudioStreamBasicОписание с полным набором свойств.

Так как же писать, по крайней мере, фрагменты «RIFF» и «fmt» с помощью AudioQueue?

Спасибо.

ответ

1

Так что .wav-файл имеет несколько стандартных кусков. ...

При создании файла с AudioQueue эти стандартные куски не создаются. ...

Я создаю файл по:

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

Пусть это будет примером ценности показывая свой код в своем вопросе. :-)

kAudioFileCAFType - это основной аудиофайл, а не WAV-файл. Вместо этого попробуйте kAudioFileWAVEType.

+0

Я мог бы поцеловать вас! Спасибо!! –