Developers BR

Um Blog sobre XNA, SilverLight e CIA.

Como tocar e manipular sons com o XNA 3.1 sem o XACT [Parte 1]

leave a comment »


Antes de mais nada, veja as especificações e que formatos o XNA suporta aqui.

Não vou usar o XACT para manter o tutorial curto, então você só precisa seguir alguns passos. Veja:

Você tem duas opções: Song e SoundEffect.

 

Song é usado para midias longas (.mp3) como por exemplo, trilha sonora de fundo etc.

SoundEffect é usado para midias mais curtas (.wav) como

Começemos com Song.

A classe Song

Usada para tocar .mp3 e .wma.

Para usar é só seguir os seguintes passos:

1. Adicione seu som na pasta Content. Para isso é só clicar na mesma com o botão direito >> Add >> Existing Item…

Então é só localizar seu arquivo.mp3 ou arquivo.wma

2. Agora declare antes do construtor uma váriavel do tipo Song. Assim:

Song meuSong;

3. Depois carregue a mesma no método LoadContent. Veja como ficará seu método LoadContent():

protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            meuSong = Content.Load<Song>("Nome do Som Aqui sem extensão");

            MediaPlayer.Play(meuSong);

        }

Se executar o projeto (F5) irá ouvir seu som tocando =D

Mas vou explicar mais sobre a classe estatica MediaPlayer.

Ela nos dá vários métodos e informações muito uteis. Vejamos alguns do mais importantes:

 

Função

Parametro

Retorno

O que faz

MediaPlayer.Play

Song seuSom

void

Executa seu Som

MediaPlayer.Stop

void

void

Para o som que estiver tocando

MediaPlayer.Pause

void

void

Pausa o som que estiver tocando

MediaPlayer.Resume

void

void

Volta a tocar um som que estiver pausado

MediaPlayer.PlayPosition

não é função

TimeSpan

Retorna a quanto tempo o som está tocando

MediaPlayer.State

não é função

MediaState

Retorna o estado (parado, pausado, tocando)

MediaPlayer.IsMuted

não é função
bool

void

Se true é mudo se false não é mudo

MediaPlayer.IsRepeating

não é função
bool

void

Se true repete
Se false não se repete

 

Bem agora o próximo.

A classe SoundEffect

Usada para tocar arquivos de efeito de curta duração (.wav).

Para usar é só seguir os seguintes passos:

1. Adicione seu som na pasta Content. Para isso é só clicar na mesma com o botão direito >> Add >> Existing Item…

Então é só localizar seu arquivo.wav

2. Carregue seu Som no método LoadContent

meuSoundEffect = Content.Load<SoundEffect>("Nome aqui sem extensão");

3. Agora para tocar, coloque isso logo abaixo da linha onde você carregou seu SoundEffect no LoadContent:

meuSoundEffect.Play();

Veja o método completo:

protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            meuSoundEffect = Content.Load<SoundEffect>("Nome aqui sem extensão");

            meuSoundEffect.Play(); 
        }

Explicando mais sobre SoundEffect

Há uma sobrecarga da função Play do meuSoundEffect que serve para você ajustar volume etc.

Veja:

meuSoundEffect.Play(float volume, float velocidade, float balanco);

Sendo que:

-volume: 0f é mudo e 1f é 100% em relação ao MasterVolume

-velocidade: –1f é lento, 0 é normal e 1f é rápido

-balanco: –1f é balanco na esquerda, 0 é meio-a-meio e 1 é na direita

OBS: Valores intermediarios como 0.5f podem ser colocados também.

Na próxima parte estarei postando sobre a classe SoundEffectInstance e exemplos práticos de como manipular algumas propriedades e tirar proveito das mesmas.

 

Até a próxima,

Seth.

Anúncios

Written by rafaelangeline

julho 20, 2009 às 2:59 pm

Publicado em Tutoriais, XNA

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: