locked
[Resolvido] Problema com trilha sonora em jogo RRS feed

  • Pergunta

  • Olá. Estou na reta final para distribuir meu jogo e quero incluir uma trilha sonora que compus pra ele, mas eu estou com um problema na hora de rodar;

    Abaixo vai o meu método:

    public void manageSoundTrack(Cue cue)
            {
                if (onGame && !paused)
                {
                    cue.Play();
                }
    
                else if (onGame && paused)
                {
                    cue.Pause();
                }
                else
                {
                    cue.Stop(AudioStopOptions.Immediate);
                }
            }

    Eu seto no LoadContent() assim:

    track = soundBank.GetCue("PongTrack");

    E no Update assim:

    manageSoundTrack(track);

    O problema: O jeito certo de se usar a classe Cue é inicializar é utilizar o método play() (nativo da classe Cue) no mesmo método, porém isso não funciona porque a música entra em loop infinito - soa assim: 'trrrrrrrrr'... - e não toca direito. Do jeito errado, que é o que estou fazendo, a música toca direitinho, mas o compilador lança exceção de "Operação Inválida". Alguém pode me ajudar?



    sexta-feira, 11 de setembro de 2015 23:44

Todas as Respostas

  • Verifique este post:

    http://rbwhitaker.wikidot.com/playing-background-music

    Creio que o seu problema seja que vc esta tentando executar a musica na mesma thread que a logica do jogo.

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 23 de setembro de 2015 14:46
  • O problema parece mesmo ser isso que você disse, Wiliam, será que tem como consertar com gameTime? No link que você indicou, é tratado sobre a classe Song, eu tentei usá-la, mas o som e o jogo ficam lentos e não funcionam legal. Agradeço pela resposta.
    quarta-feira, 23 de setembro de 2015 15:57
  • Willian, o seu link, a resposta e uma pesquisada legal pelo Google me auxiliaram a resolver o problema.

    Eis o que fiz:

    LoadContent(){
    
    ...
    
    track = Content.Load<Song>("(tema da música)");
                MediaPlayer.Play(track);
    
    ...
    
    }
    Sem estar no Update(), acho que era justamente isso que atrapalhava, grato.

    quarta-feira, 23 de setembro de 2015 17:00