2017-04-15 1 views
0

J'ai une application qui utilise un lecteur multimédia pour les sons. Code que j'utilise pour arrêter les sons quand je presse bouton retour est:pas accident logique de l'application sonnerie lorsque j'ajoute la méthode onpause sur le dos buton

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    if (mp != null) { 
     mp.reset(); 
     mp.release(); 
    } 
    finish(); 
} 

ce code fonctionne bien, mais si l'application devient soudainement interrompue, et le son est toujours en cours de lecture dont il a besoin d'arrêter, alors j'ai ajouté la même chose dans la méthode onPause (même cas si j'ajoute la méthode onStop).

@Override 
protected void onPause() { 
    super.onPause(); 
    if (mp != null) { 
     mp.reset(); 
     mp.release(); 
    } 
} 

maintenant, quand je presse en arrière, application se bloque au lieu de retourner (qui a travaillé avant ajouté méthode OnPause) OnPause fonctionne bien, comme les sons se arrête si j'appuyez sur le bouton Accueil Je reçois cette erreur dans logcat :

java.lang.RuntimeException: Impossible de mettre en pause l'activité java.lang.IllegalStateException

...

Répondre

1

Vous ne pouvez pas réinitialiser MediaPlayer, qui est libéré. Parce qu'après la libération de la ressource, qui a été utilisé pour jouer le son n'est pas disponible. Vous devez changer:

mp.reset(); 
mp.release(); 

à:

mp.release(); 
mp = null; 
+0

Merci, ce a résolu mon problème – somidurlan