Android: MediaPlayer finalizado sin ser lanzado
Estoy usando la clase MediaPlayer en una aplicación en la que estoy trabajando actualmente. Quiero aferrarme a una instancia de la clase MediaPlayer durante toda la vida de mi actividad. Estoy liberando los recursos de la clase MediaPlayer en el método onPause () {} de la actividad, sin embargo, cuando la actividad comienza, aparece la siguiente advertencia en la ventana de LogCat:
W/MediaPlayer-JNI(16795): MediaPlayer finalized without being released
¿Alguna idea de lo que estoy haciendo mal aquí o de cómo eliminar esta advertencia? No parece causar ningún problema y el sonido funciona bien.
Tengo demasiado código para publicar porque envolví algunos objetos para permitir que se administre el estado (la clase MediaPlayer actualmente no proporciona información de estado), y varias otras razones, pero el código es bastante:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
initialiseSounds(this);
}
@Override
protected void onPause()
{
soundManager.releaseResources();
}
@Override
protected void onResume()
{
initialiseSounds(this);
}
Con este método en mi clase SoundManager:
public void releaseResources()
{
player.release();
}
Y en inicializar sonidos estoy haciendo:
MediaPlayer player = new MediaPlayer();
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
AssetFileDescriptor assetFileDescriptor = context.getResources().openRawResourceFd(resourceId);
setDataSource(player, assetFileDescriptor);
Cuando quiero reproducir la pista que hago:
player.prepare();
player.start();
Aprecio cualquier consejo,
Gracias,