Какой формат лучше всего подходит для звуковых эффектов на iPhone
-
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.