2017-02-08 4 views
0

Ich versuche, ein einfaches Testprojekt zu entwickeln, das Ton abspielt, wenn ich den Knopf antippen und automatisch nach ein paar Minuten nach dem Abspielen des Tons stoppe.Android Wie MediaPlayer perfekt zu löschen

ist hier ein Code-Schnipsel:

-Code zum Spielen:

if (mPlayer != null) mPlayer = null; 

mPlayer = MediaPlayer.create(this, R.raw.shush_v2); 

mPlayer.setLooping(true); 

mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mediaPlayer) { 
      mediaPlayer.start(); 
    } 
}); 

-Code zum Anhalten:

if(mPlayer != null && mPlayer.isPlaying()) {    
    mPlayer.stop(); 

    mPlayer.reset(); 

    mPlayer.release(); 

    mPlayer = null; 
} 

Aber manchmal kann ich noch zwei Töne spielen hören nach Ich habe den Ton gestoppt.

Haben Sie dieses Verhalten schon einmal gesehen?

Antwort

0
public class PlayerApp extends Activity { 
    Button btnStart; 
    MediaPlayer mediaPlayer = null; 

    // Use the handler to stop the Player, after specific time 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_player_app); 
     btnStart = (Button)findViewById(R.id.btnStart); 
     btnStart.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) 
      { 
       // Initialize Player and start it. 
       // Call the Handler same time. 
       mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.test); 
       mediaPlayer.start(); 
       startHandler(); 
      } 
     }); 
    } 
    private void startHandler() 
    { 
     final Handler handler = new Handler(); 
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       // if Player is not null, then Stop it and Reset Null. 
       if(mediaPlayer!=null) 
       { 
        mediaPlayer.stop(); 
        mediaPlayer = null; 

       } 
      } 
     }, 2500); 
    } 

} 
+0

Hallo Jaspreet überprüfte ich Ihre Antwort und versuchte es, aber gleiche hier ist mein Code voll. –

+0

https://github.com/SelfnessAid/BabyShusher---Android/blob/master/app/src/main/java/babyshusher/babyshusher/com/babyshusher/MainActivity.java –

+0

lassen Sie mich bitte wissen, was mit mir nicht stimmt –