2016-05-31 10 views
0
MediaPlayer player = MediaPlayer.create(context, R.raw.background); 
    player.start(); 

Der obige Code ist Teil des aktuellen Codes. Wenn ich die Home-Taste drücke, hört MediaPlayer nicht auf zu spielen.Wie kann ich den MediaPlayer anhalten, wenn die Home-Taste gedrückt wird?

Ich habe den oben gezeigten Code implementiert, wenn Sie die Zurück-Taste drücken. Glauben Sie, dass der obige Code korrekt ist? Schätze jede Hilfe.

+0

Verwenden Sie den Media Player in Aktivität? Wenn ja, kannst du es in der onPause() Methode stoppen – Chol

+0

Du rufst 'player.stop()' - um den Player zu stoppen - hast du das versucht? – ishmaelMakitla

Antwort

0

Wenn Ihr Medienplayer die von Ihnen erstellte Aktivität ausführt, können Sie player.stop() unter onStop() aufrufen.

Edit:

  • Ihre Implementierung ist in Ordnung, aber es überschreibt nur die Zurück-Taste nur. Sie müssen die Home-Taste auch überschreiben, um die player beim Drücken der Home-Taste zu stoppen. (Aber verwenden onStop() statt, wie es ruft, wenn die Benutzeroberfläche versteckt ist.)

  • nicht System.exit() Verwenden Sie verwenden finish() statt.

  • Wenn Sie finish() Methode (die die Aktivität zerstört), stellen Sie sicher, dass Sie die MediaPlayer Ressourcen freigegeben wurden von player.release() Aufruf und zunichte gemacht den Spieler. (Dh player = null)

1

unten Methoden implementieren Gerade hierfür

@Override 
protected void onPause() { 
     super.onPause(); 

     if(player != null) 
      player.stop(); 
} 

@Override 
protected void onStop() { 
     super.onStop(); 

     if(player != null) 
      player.stop(); 

} 

@Override 
protected void onDestroy() { 
     super.onDestroy(); 

     if(player != null) 
      player.stop(); 

} 
+1

Stellen Sie sicher, dass Sie die 'MediaPlayer'-Ressourcen freigeben, die Sie beim Löschen der Aktivität erstellt haben, indem Sie' player.release() 'aufrufen und den' MediaPlayer' in 'onDestroy()' -Methode annullieren. –

1

Bitte versuchen Sie es mit dieser Lösung:

public class PlayaudioActivity extends Activity { 

    private MediaPlayer mp; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button b = (Button) findViewById(R.id.button1); 
     Button b2 = (Button) findViewById(R.id.button2); 
     final TextView t = (TextView) findViewById(R.id.textView1); 

     b.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       stopPlaying(); 
       mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.far); 
       mp.start(); 
      } 

     }); 

     b2.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       stopPlaying(); 
       mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.beet); 
       mp.start(); 
      } 
     }); 
    } 

    private void stopPlaying() { 
     if (mp != null) { 
      mp.stop(); 
      mp.release(); 
      mp = null; 
     } 
    } 
} 

Für weitere Informationen, lesen Sie bitte diesen Beitrag: Android MediaPlayer Stop and Play

Verwandte Themen