2009-08-07 2 views
13

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

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

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

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

ответ

10

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

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

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

+1

не быть Debby Downer, но очень легко воспроизводить несколько mp3 одновременно. Просто используйте более одного экземпляра проигрывателя AVAudio. –

+1

По крайней мере, когда я отправил этот ответ, это было не так. «AVAudioPlayer» позволял воспроизводить только один MP3-файл одновременно, а вторичный проигрыватель показывал значительную задержку и падал. Я бы предположил, что это все еще так, более того, для игр, где вам нужен точный контроль над началом звука. – pgb

2

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

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

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

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

+0

Я думал, что CAF - это просто формат контейнера, и он может содержать любые MP3, IMA4, AIFF и т. Д. Я не прав? – mahboudz

+0

Файлы CAF могут содержать другие типы форматов файлов в виде кусков, но у них есть собственный 64-битный заголовок, метаданные и расположение дорожек. Вам все еще нужен инструмент конвертера, который может импортировать другие типы и записывать в CAF. Вот спецификация: http://devworld.apple.com/documentation/MusicAudio/Reference/CAFSpec/CAF_overview/CAF_overview.html – Ramin

0

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

1

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

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

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

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

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

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

0

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

Для музыки с фоновой музыкой в ​​порядке.

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