2013-09-07 2 views
1

Я использую XAudio2 для воспроизведения звуков в моей игре. У меня около 16 исходных голосов, из которых 3 - эффекты цикла, которые нужно воспроизводить так же, как фоновая музыка. У меня есть еще одна фоновую музыку, которая начинает играть с регулярными интервалами (после завершения она ждет 1 минуту и ​​перезапускает). Всякий раз, когда нужно использовать другой эффект, например, нажатие кнопки, выстрел пистолета и т. Д., Я ищу доступный источник и прикрепляю к нему буфер и начинаю играть.XAudio2 задержка звука - при воспроизведении нескольких голосов

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

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

Может кто-то пожалуйста, помогите мне, как я застрял здесь

+0

Вы пытались использовать отдельные темы для воспроизведения ваших аудиоэффектов? –

+0

Каждый раз, когда звучит запрос воспроизведения звука, я создаю задачу для его воспроизведения. – milsim

+0

Я понимаю, но я считаю, что вы запускаете их в одном потоке, поэтому он ждет завершения эффекта и THEN воспроизводит следующий эффект. Вам нужно создать отдельные потоки для отображения различных эффектов, чтобы они могли отображаться одновременно в одно и то же время. –

ответ

1

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

В случае с Milsim проблема была именно в этом, по-видимому, он использовал задачи для отображения звуков, но они не были выпущены в разных потоках. Он решил свою проблему, используя IAsyncAction.