Возможно ли кодировать аудио в AAC или MP3 с помощью AudioUnit (CoreAudio)? - PullRequest
2 голосов
/ 14 октября 2011

Можно ли кодировать аудиоданные в сжатый формат, такой как MP3 или AAC, с помощью CoreAudio AudioUnit?Если да, какой AudioUnit (тип / подтип) выполняет работу?Как мне его настроить (чтобы не получить ошибку kAudioUnitErr_FormatNotSupported при попытке использовать что-либо кроме PCM)?

1 Ответ

2 голосов
/ 23 февраля 2012

Вы можете встроить звук для кодирования в большинство типов аудиоданных. Mp3 не один из них.

Вот полный список того, что вы можете использовать. Типы кодирования файлов

При использовании этих типов файлов вам все равно нужно будет создавать описания AudioStreamBasicDescribtions. Я никогда не находил исчерпывающий список их всех, но в поиске Google есть те, которые работают для самых распространенных, таких как caf, aac, mp4 и wav.

Чтобы действительно записать файлы на диск, вы должны создать ExtAudioFileRef и использовать ExtAudioFileWriteAsync для создания файла на диске.

Вам не нужно использовать реальный аудиоустройство для конвертации, если вы просто берете сэмплы из callio-запроса remoteio.

Я использовал это раньше, чтобы конвертировать из mp3 в wav. Также из mp3 в wav в aac. (Обратите внимание, я не думаю, что вы можете конвертировать из одного сжатого формата в другой. Это должен быть из pcm в формат)

Надеюсь, это поможет.

...