Мне нужен способ запуска/остановки цикла во время воспроизведения звука. Я обнаружил, что лучший способ воспроизвести несколько звуков - использовать XNA. Поэтому я создал SoundEffectInstance
, начиная с моего объекта SoundEffect
, который содержит аудиоклип.
Теперь проблема в том, что у меня есть кнопка, которая должна изменить состояние этого клипа с "зацикленного" на "non looping" и наоборот.
Здесь проблема:
он выдает исключение, говоря, что цикл должен быть установлен перед первым воспроизведением.
Поэтому я подумал, что, переключаясь с "non looping" на "looped", я мог просто ждать остановки звука, а затем воссоздать SoundEngineInstance
, установить IsLooped = true
и снова запустить его.
Это работает, но есть некоторые задержки, и это заставляет вас потерять время, так что это совершенно бесполезно.
Я ищу способ установить или отключить цикл во время воспроизведения звука и без какой-либо задержки.
EDIT:
Я попытался использовать два SoundEngineInstance
, один зацикленный и один нет, и просто переключаюсь между ними с помощью тома.
Проблема заключается в том, что не-петлевая запись останавливается только после первого воспроизведения, поэтому, если я зациклирую ее два раза, а затем поставлю ее в состояние без петли, звук не воспроизводится, потому что незатухающий клип уже закончился!
Предложения?