2012-05-22 4 views
0

ont le code suivant pour lancer un podcast mp3media android lecteur mp3 streaming audio sur l'autre roue

public void playPodcast(final Uri data){ 
      new Thread (new Runnable(){ 
       public void run() { 
        if(!mediaPlayer.isPlaying()){ 
         try { 
          mediaPlayer.setDataSource(getApplicationContext(), data); 
         } catch (IllegalArgumentException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } catch (SecurityException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } catch (IllegalStateException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } catch (IOException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
         try { 
          mediaPlayer.prepare(); 
         } catch (IllegalStateException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } catch (IOException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
         mediaFileLengthInMilliseconds = mediaPlayer.getDuration(); 
         duracaoPodcast = mediaPlayer.getDuration(); 

         mediaPlayer.start(); 


         if(!(controlTimer >= 1)){ 
          timer(); 
          controlTimer++; 
         } 

         primarySeekBarProgressUpdater(); 


       } 
       } 
      }).start(); 
     } 

et de fermer l'intention des utilisateurs ont:

voltar.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        finish(); 
        mediaPlayer.stop(); 
       } 
      }); 

le problème se produit lorsque l'utilisateur ferme l'intention que tous les boutons de retour téléphones avec Android est parce qu'il ne le fait pas:

finish(); 
mediaPlayer.stop(); 

ne fait que:

finish(); 

et donc l'audio continue à jouer, même si je reviens à cette intention la pause:

stop.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       if(mediaPlayer.isPlaying()){ 
        mediaPlayer.stop(); 
        frame.setVisibility(View.INVISIBLE); 

       } 

      } 
     }); 
bouton

ne fonctionne pas, et si j'appuie sur le jeu, il commence une nouvelle audio haut de ce jeu vidé,

une idée de comment résoudre?

+0

Lisez ici: http://stackoverflow.com/questions/2590947/about-finish-in-android et changez la position des instructions finish() et stop(). – rosco

+0

lorsque j'appelle la méthode finish(); le bouton pour retourner à l'activité précédente fonctionne correctement, comme vous pouvez le voir dans mon post sur "voltar.setOnclickListener" le problème est lorsque l'utilisateur ne revient pas pour mon bouton, mais le retour de l'android natif. – jucajl

Répondre

0

Mettez mediaPlayer.stop(); dans l'activité onStop() Méthode pour autant que j'ai compris votre question.

+0

n'a pas bien compris votre réponse, vous m'avez dit de mettre mediaPlayer.stop() dans onStop(), mais qu'est-ce que c'est onStop()? une méthode? le bouton que j'ai mediaPlayer.stop stop(); comme vous pouvez le voir dans mon post, et cela fonctionne parfaitement, sauf lorsque l'utilisateur appuie sur le bouton pour retourner tous les téléphones avec Android est parce que le bouton ferme l'activité de l'activité et quand je reviens est comme si le MediaPlayer est arrêté, parce que le activité a commencé à partir de zéro. – jucajl

+0

était seulement comprendre le cycle de vie de l'activité – jucajl