2009-02-04 2 views
3

Я хочу начать с аудиофайла скромного размера файла и закончить с массивом unsigned char s, который можно загрузить в OpenAL с помощью alBufferData. Моя проблема - это шаги, которые происходят в середине.Lossy сжатый формат для raw PCM на iPhone

Я думал, AAC будет путь, но, по словам представителя компании Apple Rincewind (ок 12/08):

В настоящее время аппаратные помощь форматы сжатия не поддерживаются для декодирования на iPhone OS. Эти форматы - AAC, MP3 и ALAC.

Использование ExtAudioFile с набором клиентских форматов создает ошибки PERM, поэтому он ничего не делает.

Итак, храбрые знания, какие у меня варианты? Пакет приложения с .wav и просто сосать, имея массовую загрузку? Напишите мой собственный декодер?

Любые ссылки на ресурсы или советы, которые могут у вас возникли, были бы весьма полезны.

ответ

2

В то время как Vorbis и другие рекомендуют это хорошо, они могут быть довольно медленными на iPhone, поскольку нет аппаратного ускорения.

Один из кодеков, поддерживаемый изначально (но имеет коэффициент сжатия 4: 1), является ADPCM, ака im4. Он обрабатывается через интерфейс ExtAudioFile и является только самым маленьким битом медленнее, чем загрузка .wav напрямую.

0

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

+0

Ах, они уже моно. Я хочу, чтобы сокращение пространства было ограничено только сжатием с потерями. – mcccclean

1

Есть некоторые хорошие открытым исходным кодом аудио библиотеки декодирования, которые вы могли бы использовать:

Оба лицензированные под LGPL , что означает, что вы можете использовать их в приложениях с закрытым исходным кодом, при условии, что изменения в библиотеке, если таковые имеются, являются открытыми источниками.

0

Другой вариант для собственного декодирования - Ogg Vorbis. Существует даже небольшая версия их библиотеки для целых процессоров, называемых "Tremor".

4

Оффлайн рендеринг сжатого аудио теперь возможен, см. QA1562.

Смежные вопросы