У меня высокопроизводительная игра для iPhone, в которую я хотел бы добавить звуки. Похоже, есть три основных варианта: (1) AVAudioPlayer
, (2) аудио-очереди и (3) OpenAL. Я бы не хотел писать страницы низкоуровневого кода просто для воспроизведения сэмпла, поэтому я бы хотел использовать AVAudioPlayer
. Проблема в том, что кажется, что это убивает производительность - я сделал простое измерение, используя CFAbsoluteTimeGetCurrent
, а сообщение play
, кажется, занимает где-то от 9 до 30 мс, чтобы закончить. Это довольно печально, учитывая, что 25 мс == 40 кадров в секунду.
Конечно, есть метод prepareToPlay
, который должен ускорить процесс. Вот почему я написал простой класс, который имеет в своем распоряжении несколько AVAudioPlayer
с, готовит их заранее, а затем воспроизводит семпл, используя подготовленный проигрыватель. Никакой сигары, все же это занимает ~ 20 мс, о которых я упоминал выше.
Такая игра непригодна для игр, так что вы используете для воспроизведения звуков с приличной производительностью на iPhone? Я что-то не так делаю с AVAudioPlayer
? Вы играете звуки с аудио-очередями? (Я написал что-то похожее на AVAudioPlayer до того, как вышла версия 2.2, и я хотел бы сэкономить этот опыт.) Используете ли вы OpenAL? Если да, есть ли простой способ воспроизведения звуков с помощью OpenAL, или вам приходится писать страницы кода?
Обновление: Да, воспроизведение звуков с помощью OpenAL довольно просто .