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