Сжатый формат с потерями в сыром PCM на iPhone - PullRequest
3 голосов
/ 04 февраля 2009

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

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

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

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

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

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

Ответы [ 5 ]

4 голосов
/ 22 марта 2009

Теперь возможен автономный рендеринг сжатого звука, см. QA1562 .

2 голосов
/ 09 февраля 2009

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

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

1 голос
/ 04 февраля 2009

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

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

0 голосов
/ 05 февраля 2009

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

0 голосов
/ 04 февраля 2009

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

...