Какой лучший формат для звуковых эффектов на iPhone - PullRequest
13 голосов
/ 07 августа 2009

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

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

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

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

Ответы [ 5 ]

10 голосов
/ 07 августа 2009

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

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

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

2 голосов
/ 07 августа 2009

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

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

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

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

1 голос
/ 08 августа 2009

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

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

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

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

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

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

0 голосов
/ 22 ноября 2011

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

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

0 голосов
/ 08 августа 2009

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

...