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?
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);
}