2015-04-06 1 views
0

Ceci est mon OnPause:Mediaplayer en revenant à l'activité

@Override 
protected void onPause() { 
    try{ 
    if(m.isPlaying()){ 
     m.pause(); 
    } 
    } 
    catch(Exception e){ 

    } 
    super.onPause(); 
} 

Ceci est mon onStop:

@Override 
protected void onStop() { 
    try{ 
    if(m!=null){ 
     m.stop(); 
     m.release(); 
    } 
    } 
    catch(Exception e){ 

    } 
    super.onStop(); 
} 

Et voici mon onResume:

@Override 
protected void onResume() { 
    try{ 
     if (m == null) { 
       m.reset(); 
       m = MediaPlayer.create(this, R.raw.menu); 
       m.start(); 
     } 
     else{ 
      m.start(); 
     } 
    } 
    catch(Exception e){ 

    } 
    super.onResume(); 
} 

Il y a un mediaplayer sur mon activité qui joue, Mon but est que quand une nouvelle activité s'ouvre, elle s'arrête, et quand il y a un retour, la musique se réinitialise et commence à jouer g encore une fois. Ce code n'arrête que la musique sur une nouvelle activité, quand je reviens il n'y a pas de musique. Pourquoi?

+0

Ajouter 'e.printStackTrace();' dans le bloc attrape obtenant probablement l'exception –

+0

@ ρяσѕρєяK donne l'exception illegalstate – SpoocyCrep

+0

Si c'est le code que vous exécutez réellement, il devrait toujours donner une exception 'NullPointerException'. Vous vérifiez 'm == null', puis appelez' m.reset() 'même s'il est certainement nul. – Dave

Répondre

1
if (m == null) { 
    m.reset(); 
    m = MediaPlayer.create(this, R.raw.menu); 
    m.start(); 
} 

Ici vous démarrez une instance MediaPlayer non initialisée. Vous devez d'abord le préparer avant d'appeler le start(). Par conséquent, vous devriez obtenir un IllegalStateException. here est un déclaréiagram pour la référence.

+0

Alors, comment ça se passe quand je vais d'abord dans l'application .. c'est bizarre. aussi je l'ai préparé et cela ne fonctionnera toujours pas – SpoocyCrep

+0

dépend de votre 'onCreate' qui n'est pas appelé quand seulement reprendre. – sschrass

+0

Je n'ai jamais déclaré m = new MediaPlayer(); et pourtant ça a marché, comment ça se fait? – SpoocyCrep