Reprodução de Mídia

Liberando o MediaPlayer

O MediaPlayer, até mesmo pela sua função, consome recursos diversos do sistema. Cada nova instância dele que é criada consome mais desses recursos, podendo chegar a um ponto que isso gera instabilidade ao sistema. Por esse motivo, é importante que sempre que o MediaPlayer deixe de ser utilizado, ele seja liberado.

Como estamos estudando aqui maneiras de implementar o MediaPlayer em uma Activity e não em um Service (que veremos nas próximas aulas), não faz nenhum sentido que guardemos uma cópia do MediaPlayer se a Activity for parada além, é claro, do caso em que o MediaPlayer não vai mais ser utilizado dentro da Activity. Em ambos esses casos, devemos liberar os recursos do MediaPlayer. Para fazer isso, devemos, no método onStop de nossa Activity, ou quando o MediaPlayer se tornar inútil, utilizar o método release para que ele possa liberar os recursos utilizados pelo MediaPlayer e, na sequência, tornar a instância do MediaPlayer nula, fazendo com que o MediaPlayer seja igual a null. Ao tomar essas duas precauções, os recursos do MediaPlayer serão liberados e a instância dele que tiver em memória será limpa pela máquina virtual, já que não estará mais sendo utilizada.

É importante notar que, principalmente no caso de parar o MediaPlayer no onStop, devemos reiniciar o MediaPlayer desde o primeiro passo no caso de voltarmos a utilizá-lo. Isso deve ser feito no método onStart de sua Activity. Com isso, poderemos garantir que no caso de o usuário virar o aparelho, por exemplo, o MediaPlayer seja recriado e o antigo seja deletado. Caso queira manter a reprodução, deve-se salvar o ponto atual de reprodução antes do encerramento e, após a reinicialização, utilizar, após o prepare, o método seekTo para posicionar a reprodução onde se deseja. Encerramos assim os nossos estudos sobre reprodução de mídia.

Versão 5.3 - Todos os Direitos reservados