Search code examples
androidandroid-studioandroid-mediaplayeraudio-playerandroid-music-player

Android MediaPlayer pause() stops the player and start again


I need to play audio in an Android application so I used MediaPlayer. I created 2 buttons: Play and Pause but after I paused a song and want to resume it, the song starts again instead of resuming from where I left.

I wrote this code:

public MediaPlayer mediaPlayer = new MediaPlayer();


public void playPre(View view) {
    //mediaPlayer.release();
    mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.music);
    mediaPlayer.start(); 
    ImageView pausaOneButton = (ImageView)findViewById(R.id.PausaOneButton);
    pausaOneButton.setVisibility(View.VISIBLE);


}

public void stopPre(View view) {

    mediaPlayer.pause();
    ImageView pausaOneButton = (ImageView)findViewById(R.id.PausaOneButton);
    pausaOneButton.setVisibility(View.INVISIBLE);

}

What's wrong?


Solution

  • You are re-creating the MediaPlayer upon every call of playPre(). You could change your code to this:

    public MediaPlayer mediaPlayer = null;
    
    public void playPre(View view) {
        if (mediaPlayer == null) {
            mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.music);
        }
        mediaPlayer.start(); 
        ImageView pausaOneButton = (ImageView)findViewById(R.id.PausaOneButton);
        pausaOneButton.setVisibility(View.VISIBLE);
    
    
    }
    
    public void stopPre(View view) {
    
        mediaPlayer.pause();
        ImageView pausaOneButton = (ImageView)findViewById(R.id.PausaOneButton);
        pausaOneButton.setVisibility(View.INVISIBLE);
    
    }