Android: MediaPlayer finalizado sem ser lançado
Estou usando a classe MediaPlayer em um aplicativo em que estou trabalhando atualmente. Eu quero segurar uma instância da classe MediaPlayer para o tempo de vida da minha atividade. Estou lançando os recursos da classe MediaPlayer no método onPause () {} da atividade, no entanto, quando a atividade é iniciada, vejo o seguinte aviso aparecer na janela LogCat:
W/MediaPlayer-JNI(16795): MediaPlayer finalized without being released
Alguma ideia do que estou fazendo errado aqui ou como remover esse aviso? Não parece causar problemas e o som funciona bem.
Eu tenho um pouco de código demais para postar porque eu envolvi alguns objetos para permitir que o estado seja gerenciado (a classe MediaPlayer atualmente não fornece informações de estado), e várias outras razões, mas o código é praticamente:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
initialiseSounds(this);
}
@Override
protected void onPause()
{
soundManager.releaseResources();
}
@Override
protected void onResume()
{
initialiseSounds(this);
}
Com este método na minha classe SoundManager:
public void releaseResources()
{
player.release();
}
E em initialiseSounds estou fazendo:
MediaPlayer player = new MediaPlayer();
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
AssetFileDescriptor assetFileDescriptor = context.getResources().openRawResourceFd(resourceId);
setDataSource(player, assetFileDescriptor);
Quando eu quero tocar a faixa que eu faço:
player.prepare();
player.start();
Aprecie qualquer conselho,
Obrigado,