
Continuando a série sobre XNA, vamos abordar o áudio do XNA.
Em primeiro lugar, temos uma classe usada somente para tocar música, chamada de Song.
Para carregar o som, deve-se usar o Content.Load da mesma forma que uma textura, passando por parâmetro o caminho relativo do arquivo (sem extensão) a partir do diretório Content.
Segue o código:
Para tocar a música, deve-se usar a classe estática MediaPlayer, que é própria do XNA. Vejam todos os comandos possÃveis:
Já os efeitos sonoros são utilizados de várias maneiras. Eu estou utilizando uma implementação própria do XNA 3.0, onde podemos instanciar uma classe SoundEffect de maneira similar ao Song. A diferença é que os arquivos devem ser do tipo wave.
Com isso, podemos tocar o som a qualquer momento usando a função Play().
O que ocorre neste Play() é criar uma nova instância daquele som e tocá-lo. Se o Play() for chamado várias vezes, vários sons são tocados ao mesmo tempo, em sobreposição. Isso não é muito útil, a não ser em situação em que o som deve ser tocado de maneira independente. Um exemplo disso é quando coletamos moedas no Super Mario.
Mas caso seja preciso tocar somente uma instância do som, usando repetição, aà a figura muda:
Com esta instância do som rocket, podemos aplicar loop no som e tocá-lo sem sobreposição de áudio. Ou seja, ao dar um novo Play(), o som corta e começa novamente. Tocando o som a partir da instância ele automaticamente se repete quando chega ao fim. Eu uso isso para ficar repetindo o som do foguete das naves enquanto ele está acionado.
Para tocar o som, basta fazer o seguinte:
Categorias: Desenvolvimento | No Comments »