Какой лучший формат для звуковых эффектов на iPhone

Каков рекомендуемый аудиоформат для хранения и воспроизведения коротких (2-3 секунд) звуковых эффектов на iPhone или iToouch?

Документация iPhone Audio SDK указывает, что iPhone поддерживает аудио в нескольких форматах - однако есть недостатки для каждого:

  • MP3: Это очень сжатый, но также высококачественный формат кодирования, который сохраняет насыщенность музыки и голоса. Тем не менее, только один mp3-поток может воспроизводиться одновременно на iPhone, потому что он требует использования аппаратного декодера. Это исключает mp3 как формат для звуковых эффектов, поскольку они будут прерывать фоновую музыку и/или любую музыку пользователя, которую играют.
  • WAV: iPhone поддерживает только файлы WAV, если они закодированы в PCM и не требуют каких-либо кодеков сжатия. В то время как WAV поддерживает множество различных частот дискретизации и бит-глубины, это приводит к очень большим файлам (180 к/сек для 16-битного/44,1 кГц/стерео аудио). Большие размеры становятся непомерно высокими, когда у вас есть много эффектов для быстрой игры.
  • AIFF: Имеет схожие проблемы с WAV файлами - неясно, поддерживаются ли какие-либо кодеки сжатия. Предположительно, сжатие Apple Lossless поддерживается, но я не могу найти никаких инструментов, которые могут генерировать AIFF при использовании этого сжатия.
  • Пользовательский:. Вы можете использовать API-интерфейсы для низкоуровневого iPhone для воспроизведения собственного аудио из любого источника. Но это кажется излишним для воспроизведения простого звукового эффекта в игре. Я, конечно, не хочу писать свой собственный звуковой слой и кодировщик/декодер именно для этого.

Любые рекомендации были бы оценены... было бы также полезно, если бы кто-то мог рекомендовать недорогой инструмент для обработки аудио, который может генерировать рекомендуемый формат. Спасибо.

Ответы

Ответ 1

Вы можете использовать сжатые файлы IMA4, которые обеспечивают сжатие 1: 4 из WAV файлов и распаковываются аппаратным обеспечением (вы можете загрузить их с помощью AVAudioPlayer).

Что касается MP3, вы можете воспроизводить только один файл одновременно в этом формате, поэтому он не рекомендуется для звуковых эффектов, где вы могли бы одновременно иметь более одного.

Я использую файлы IMA4 с OpenAL, поэтому я разворачиваю их вручную с помощью кода, основанного на этом сообщении.

Ответ 2

Мне очень повезло с файлами формата CAF, хотя WAV близок по размеру.

Что касается инструментов, Audacity является свободным и разумно функциональным. Я в основном использую Amadeus Pro (около 40 долларов США). Довольно приличный и генерирует все поддерживаемые iPhone аудиоформаты (включая MP3, AIFF, WAVE, AAC и CAF). Хорошей особенностью является то, что он поддерживает подключаемые модули AudioUnit и VST, поэтому вы можете добавить SoundFX.

Я также слышал хорошие вещи о делении (Rogue Amoeba), но на самом деле не использовал его. Их другие аудио-продукты довольно прочные.

Структура AVAudioPlayer довольно хороша при воспроизведении коротких клипов, но вы можете предварительно загрузить звуки (вызов prepareToPlay) и сохранить их, если вы можете сэкономить память.

Ответ 3

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

Я использую SoundToolbox и AVAudioPlayer со звуками в основном в несжатом линейном PCM, созданном в GarageBand.

SoundToolbox отлично подходит для воспроизведения коротких маленьких "Boing" или "click" или других звуков, которые вы запускаете для воспроизведения, и вам не нужно останавливать или возиться с их объемом и т.д.

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

Если вы еще этого не сделали, прочитайте Apple Руководство по программированию iPhone по поддержке звука.

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

Ответ 4

Единственным форматом, с которым я смог работать, является CAF. Это также один из примеров кода из яблока. Если вы используете короткие звуковые эффекты, размер не будет проблемой.

Ответ 5

Я использую формат Microsoft ADPCM WAV, который сжимает от 3,25: 1 (высокое качество) до 3,98: 1 (качество по умолчанию). Также я уменьшаю частоту дискретизации до 32000 или даже 22050 в зависимости от звука. Нет необходимости сохранять некоторые файлы в стерео - моно также значительно уменьшает размер файла.

Для фоновой музыки mp3 отлично.