Android: MediaPlayer abgeschlossen, ohne veröffentlicht zu werden

Ich verwende die MediaPlayer-Klasse in einer App, an der ich gerade arbeite. Ich möchte eine Instanz der MediaPlayer-Klasse für die Dauer meiner Aktivität beibehalten. Ich gebe die Ressourcen aus der MediaPlayer-Klasse in der onPause () {} -Methode der Aktivität frei. Beim Starten der Aktivität wird jedoch die folgende Warnung im LogCat-Fenster angezeigt:

W/MediaPlayer-JNI(16795): MediaPlayer finalized without being released

Irgendeine Idee, was ich hier falsch mache oder wie diese Warnung entfernt wird? Es scheint keine Probleme zu verursachen und der Sound funktioniert einwandfrei.

Ich habe ein bisschen zu viel Code zum Posten, weil ich ein paar Objekte eingepackt habe, damit der Status verwaltet werden kann (die MediaPlayer-Klasse liefert derzeit keine Statusinformationen), und verschiedene andere Gründe, aber der Code ist ziemlich viel:

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    initialiseSounds(this);
}

@Override
protected void onPause()
{
    soundManager.releaseResources();
}

@Override
protected void onResume()
{
    initialiseSounds(this);
}

Mit dieser Methode in meiner SoundManager-Klasse:

public void releaseResources()
{
    player.release();
}

Und in initialiseSounds mache ich:

MediaPlayer player = new MediaPlayer();
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
AssetFileDescriptor assetFileDescriptor = context.getResources().openRawResourceFd(resourceId);
setDataSource(player, assetFileDescriptor);

Wenn ich den Track spielen möchte, mache ich:

player.prepare();
player.start();

Schätzen Sie jeden Rat,

Vielen Dank,

Antworten auf die Frage(3)

Ihre Antwort auf die Frage