хороший способ прослушивания аудиофайлов с использованием openAL в iOS

Я делаю игру для платформы iOS, и я хочу использовать openAL для воспроизведения аудиоэффектов в игре (кроме фоновой музыки). Я хочу иметь, например, 20-30 звуков продолжительностью 1-3 секунды. Поскольку я хочу, чтобы эти звуки воспроизводились без задержки, мне приходится загружаться из файла, распаковывать и хранить в памяти. Но декомпрессированный звук (как я понимаю) использует много памяти. Так я на правильном пути? Или есть другой способ? благодаря

Загрузка звуков приводит к задержке и может привести к дрожанию остальной части приложения. Для лучшей производительности вы определенно хотите предустановить звуковые эффекты.

Использование памяти – проблема, но пока вы не загружаете слишком много аудиоданных в память за раз, вы будете в порядке.

Монофонические данные с частотой 44 кГц будут занимать 88 000 байт в секунду при несжатом. Стерео – это вдвое больше, но, как правило, для звуковых эффектов вы вообще не хотите стерео. Итак, если у вас было 30 звуков, каждая из которых длилась 3 секунды, у вас было бы 90 секунд звука с использованием 7,5 МБ памяти. Вы можете, конечно, вдвое сократить использование памяти с использованием источника 22050 Гц, прежде чем сжимать его до AAC (который сохраняет частоту выборки источника).

То, что я делаю, это поддерживать кеш аудио буферов, которые я могу очистить, когда приложение начнет использовать слишком много памяти: https://github.com/kstenerud/ObjectAL-for-iPhone/blob/master/ObjectAL/ObjectAL/ OALSimpleAudio.m # L441

Для наименьших латентных звуковых эффектов вы захотите воспроизвести несжатый звук уже в памяти. 2 или 3 Мбайта не так много памяти, чтобы выделять звуковые эффекты с низкой латентностью.

  • Как просто воспроизводить аудио данные CMSampleBufferRef?
  • CoreAudio / OpenAL: как получить исходящий аудиосигнал
  • OpenAL Leak-OALSource: AddPlaybackMessage
  • MPNowPlayingInfoCenter всегда находится в состоянии «воспроизведения» при воспроизведении звука через OpenAL
  • openAL get / set offset в секундах
  • Функциональность записи приложений виртуального инструмента с помощью RemoteIO
  • Interesting Posts

    Передвиньте текстовое поле, когда клавиатура появляется в Objective C

    iOS, пользовательская клавиатура с коллекцией, проблема ограничений

    Создание динамического запроса NSMutableDictionary с несколькими значениями

    Руководства по настройке перетаскивания iOS

    Как использовать пользовательский вид iOS (расположенный в указанной библиотеке классов) в файле Interface Builder?

    Настройка формата номера телефона при наборе текста

    Как я могу получить доступ к IBoutlet на UIViewController из другого класса?

    Не удалось установить заголовок UIButton

    Отсутствует требуемый значок iOS в Xcode

    Как добавить новый StoryBoard и установить его, чтобы стать основным кодом StoryBoard xCode без ошибок

    AutoLayout действует странно, когда translatesAutoresizingMaskIntoConstraints устанавливается на false

    Как сравнить атрибуты NSAttributedString?

    Спецификация podspec не проверяет

    MKStoreKit 4.0: Как проверить, обновлена ​​ли автоматическая возобновляемая подписка?

    Как настроить обработку ошибок, когда пользователь не хочет покупать товар в iOS InApp Purchase?

    Давайте будем гением компьютера.