Отсутствуют куски при создании файла с AudioQueue - PullRequest
1 голос
/ 06 августа 2009

Итак, файл .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?

Спасибо.

1 Ответ

1 голос
/ 06 августа 2009

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

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

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

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

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

kAudioFileCAFType - это файл Core Audio, а не файл WAV. Попробуйте kAudioFileWAVEType вместо.

...