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,

Respuestas a la pregunta(3)

Su respuesta a la pregunta