Como posso jogar imediatamente um som quando outro termina som usando XNA / XACT?

StackOverflow https://stackoverflow.com/questions/113977

  •  02-07-2019
  •  | 
  •  

Pergunta

Esta questão faz fronteira entre o mundo do designer de áudio e o programador. Enquanto esta questão pode ter que ser parcialmente respondida por esse domínio de um designer de áudio, é certo um problema para o programador. Em nosso projeto, queremos fazer um loop um som (música de fundo), enquanto o relógio do jogo é maior que um minuto esquerda. Quando esse tempo é atingido, queremos parar a música como autor, e, em seguida, continuar imediatamente com terminando segmento . Eu tenho procurado em XACT, e parece ter suporte para diferentes eventos. Infelizmente, a documentação está faltando, ea aplicação é um pouco estranho para mim como um programador.

O que eu estou procurando fazer é algo nesse sentido (diferentes abordagens):

  1. Quando a música parar, quero amarrar um evento para reproduzir outro som imediatamente
  2. Quando um marcador é desencadeada na música, eu quero jogar outro som imediatamente
  3. Eu também gostaria de saber no meu aplicativo quando alguns desses eventos acontecer

O problema é que eu não tenho sido capaz de encontrar qualquer mecanismo para som auto-play quando outro som começa e que eu não posso encontrar uma maneira de conectar-se com os eventos realizados no projeto XACT para C #.

Se isso não puder ser feito (ou seja XACT / XNA não tem suporte para essas operações), reúna suas ideias sobre como resolver este problema com erros de tempo cross-som mínimos. De preferência, eu seria capaz de controlar o máximo possível deste em C # com chamadas para XNA.

Foi útil?

Solução

eu acho que já resolvido agora

Aqui está como eu fiz isso.

  1. Selecione o Cue o qual deseja som mudança depois de ter sido parado em XACT .
  2. Set Lista de reprodução Tipo para Interativo .
  3. Open Cue Transitions .
  4. Selecione Ver por Destino .
  5. Selecione o Cue na (parar) nó visível na exibição em árvore.
  6. Em Propriedades de Transição no lado direito da exibição em árvore, para Origem e Destino :
    1. Set Fonte para Fim de loop .
    2. Set destiantion para Começando .
  7. Em Propriedades de Transição no lado direito da exibição em árvore, para Transitions :
    1. Set Tipo de Transição para Direto Concurrent Transição .
    2. Set Som de Transição para o som que você deseja jogar após o som looping completou seu ciclo.

fechar a janela e testá-lo por jogar o Cue. Também teste para pará-lo Como Authored para ver se o comportamento fulfilles suas expectativas.


Implementação

No código, Parar o Cue Como Authored para obter esse comportamento. Imediato pára a deixa sem jogar o Outro som. Espero que isso ajude outras pessoas que possam executar para esse problema no futuro. A pergunta ea resposta não foi muito código orientado como eu pensava inicialmente. Além disso, esta aplica-se para XNA 2.0. Eu não sei se haverá outras opções para controlar este tipo de comportamento em XNA 3.0 +.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top