Как я могу немедленно воспроизвести звук, когда другой звук заканчивается с помощью XNA / XACT? - PullRequest
1 голос
/ 22 сентября 2008

Этот вопрос граничит между миром звукового дизайнера и программиста. Хотя на этот вопрос может частично отвечать этот домен аудио-дизайнера, это, безусловно, проблема для программиста. В нашем проекте мы хотим зациклить звук (фоновую музыку), пока таймер игры больше одной минуты. Когда наступит время, мы хотим остановить музыку как созданную, , а затем сразу продолжить с завершающим сегментом . Я изучал XACT, и, похоже, он поддерживает различные события. К сожалению, документация отсутствует, и приложение, как программист, чуждо мне.

Я собираюсь сделать что-то вроде этого (разные подходы):

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

Проблема в том, что мне не удалось найти какой-либо механизм для автоматического воспроизведения звука, когда начинается другой звук, и что я не могу найти способ подключиться к событиям, сделанным в проекте XACT, для C #.

Если это невозможно сделать (т. Е. XACT / XNA не поддерживает эти операции), пожалуйста, соберите свои идеи о том, как решить эту проблему с минимальными временными ошибками. Желательно, чтобы я мог как можно больше контролировать это в C # с помощью вызовов XNA.

1 Ответ

4 голосов
/ 22 сентября 2008

Я думаю, что я решил это сейчас

Вот как я это сделал.

  1. Выберите Cue , для которого вы хотите изменить звук после его остановки в XACT .
  2. Установить Тип списка воспроизведения - Интерактивный .
  3. Open Cue Переходы .
  4. Выбрать Просмотр по назначению .
  5. Выберите Cue в узле (stop) , видимом в древовидном представлении.
  6. В Свойства перехода справа от дерева, для Источник и назначение :
    1. Установить Источник на Конец цикла .
    2. Установить Destiantion до Начало .
  7. В Свойства перехода справа от дерева, для Переходы :
    1. Набор Тип перехода на Прямой параллельный переход .
    2. Установите Transitional Sound на звук, который вы хотите воспроизвести после того, как зацикленный звук завершил свою петлю.

Закройте окно и проверьте его, играя Cue. Также проверьте, чтобы остановить его As Authored , чтобы увидеть, соответствует ли поведение вашим ожиданиям.


Осуществление

В коде Stop Cue As Authored , чтобы получить это поведение. Немедленно останавливает сигнал без воспроизведения звука. Я надеюсь, что это поможет другим людям, которые могут столкнуться с этой проблемой в будущем. Вопрос и ответ не были так сильно ориентированы на код, как я думал изначально. Также это относится к XNA 2.0. Я не знаю, будут ли другие варианты управления таким поведением в XNA 3.0+.

...