quarta-feira, 16 de novembro de 2011

Android: Adicionando e Usando arquivos MP3

Hoje vamos estudar como executar arquivos MP3 nos aplicativos Android.

O primeiro passo é escolher um arquivo MP3 e adicioná-lo no seu projeto. Para isso, adicione o arquivo na pasta res/raw. O arquivo R.java será atualizado e você poderá referenciar o arquivo como um recurso qualquer.

O segundo passo é instanciar um objeto MediaPlayer, que é a classe que usaremos para executar o nosso arquivo MP3. Para isso, utilizamos o método create() da classe MediaPlayer. Note que o método é estático e também possui dois argumentos: o primeiro é o contexto do aplicativo e o segundo é o id do arquivo, que é obtido pela classe R.




MediaPlayer player = MediaPlayer.create(contexto,R.raw.arquivo_mp3);
 

Para iniciar a reprodução, utilizaremos o método start(). Esse método continuará de onde parou caso a música foi pausada, ou reiniciará a música caso contrário. Para parar a reprodução, utilizamos o método stop(), e para pausar a reprodução,  o método pause().
Perceba que para retomar a reprodução novamente, é necessário invocar o método prepare() ou prepareAsync() antes de chamar o start(). A diferença entre as duas funções é que o primeiro manterá a thread bloqueada até o Player estiver pronto para reprodução, enquanto o segundo liberará a thread e disparará um OnPreparedListener para quando a mídia estiver pronta.


player.start();    //Primeira execução, Inicia a reprodução do começo
player.pause();    //Pausa a reprodução
player.start();    //Inicia a reprodução de onde parou
player.stop();     //Para a reprodução
player.prepare();  //Prepara o player para reprodução
player.start();    //A reprodução iniciará do início
 

Por último, quando o Player não ser mais necessário, devemos finalizar com o método release(), que liberará todos os recursos que o player estiver utilizando. 

player.release();

Lembre-se que sempre deve chamar o métado release(), inclusive quando o aplicativo for finalizado. Caso não faça, os recursos continuarão alocados para o aplicativo mesmo depois de finalizado. Por exemplo, se você encerrou o aplicativo com uma música em reprodução, a música continuará tocando mesmo com o aplicativo encerrado.

Outra dica é que não deve instanciar vários MediaPlayer's, pois chegará um momento em que o sistema não consiguirá criar edará um erro (nos testes que fiz, foram no máximo 8 instâncias, na nona ele deu erro).

Nenhum comentário:

Postar um comentário