Воспроизведение звуков OpenAL из фонового потока - PullRequest
4 голосов
/ 06 июня 2011

В моем iOS-приложении я не хочу воспроизводить звуки с помощью OpenAL.У меня есть класс AudioManager, отвечающий за управление звуком (синглтон).Все источники звука и буферы инициализируются при его создании (при первом вызове instance).

Так что для воспроизведения звука все, что мне нужно - это остановить предыдущий звук, очистить старый буфер (необходимого источника), прикрепите новый буфер, установите высоту и усиление и, наконец, воспроизведите звук.Все эти операции выполняются в методе playSound:(AMSound)sound (AMSound - простое перечисление).

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

Могу ли я вызывать playSound: напрямую из фоновых потоков или использовать только в основном потоке?А как насчет одновременных звуков: один создан из основного потока, другой - из фона?

1 Ответ

6 голосов
/ 06 июня 2011

Не имеет значения, в каком потоке вы вызываете playsound, openAL все равно будет воспроизводить его в своем собственном потоке. Что касается одновременных звуков, это зависит от того, как вы хотите их микшировать, так или иначе, openAL всегда будет управлять своими собственными потоками воспроизведения, поэтому с точки зрения потоков не имеет значения, куда вы звоните playsound

...