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

StackOverflow https://stackoverflow.com/questions/1244888

  •  12-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top