Отсутствуют фрагменты при создании файла с помощью AudioQueue

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

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

Что происходит? Разве куски "RIFF" и "fmt" не требуются? Как принудительно включить эти куски?

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

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

с inputDataFormat, являющимся AudioStreamBasicDescription с полным набором свойств.

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

Спасибо.


person Eric Christensen    schedule 06.08.2009    source источник


Ответы (1)


Таким образом, файл .wav состоит из нескольких стандартных фрагментов. …

При создании файла с помощью AudioQueue эти стандартные фрагменты не создаются. …

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

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

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

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

person Peter Hosey    schedule 06.08.2009
comment
Я мог бы поцеловать тебя! Спасибо!! - person Eric Christensen; 06.08.2009