Какой API для воспроизведения звука из буфера в ios и osx?

Я бы хотел сделать очень простую вещь: воспроизвести аудиоданные PCM из памяти.

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

Итак, я ищу лучший способ повторно реализовать мой старый, устаревший AudioWrapper (который был основан на AudioUnits V1), но я не смог найти в документации Apple ] API, который будет выполнять следующие задачи:

  • Совместимость с 10.5–10.7.
  • Доступно для iOS.
  • Не полагается на стороннюю библиотеку.
  • Будьте уверены в завтрашнем дне (например: не на основе Carbon, 64 бита ...).

Я подумываю об использовании OpenAL, но действительно ли это лучший вариант? Я видел отрицательных отзывов об этом, он может быть слишком сложным и излишним, а также может увеличить производительность?

В худшем случае, у меня могут быть две разные реализации этого AudioWrapper , но, если возможно, мне бы очень хотелось избежать одной версии для каждой системы (ios, 10.5, 10.6, 10.7 ...). Также это будет на C ++.

РЕДАКТИРОВАТЬ: Мне нужна хорошая задержка, система должна реагировать на действия пользователя менее чем за 20 мс (буферы должны быть от 128 до 512 выборок при 44 кГц)

5
задан Community 23 May 2017 в 12:20
поделиться