Bouton Lecture/pause du Lecteur Multimédia Android

dans mon projet, je joue un fichier de musique dans android media player en utilisant le code suivant

MediaPlayer mPlayer = MediaPlayer.create(MyActivity.this, R.raw.myfile);
mPlayer.start();

ce qui précède est codé dans l'onclick du bouton play. Je veux mettre en pause la lecture en cliquant de nouveau sur le même bouton.ie) simple bouton pour jouer / pause. Comment dois-je faire.

18
demandé sur Dray 2012-02-27 10:45:54

7 réponses

Vous pouvez utiliser simple if-check pour gérer la pause. Essayez ceci:

if(mPlayer.isPlaying()){
    mPlayer.pause();
} else {
    mPlayer.start();
}
46
répondu Ruuhkis 2012-02-27 06:50:42

essayez ceci:

final Button bPlay = (Button) findViewById(R.id.bPlay);
MediaPlayer song1 = MediaPlayer.create(tutorialFour.this, R.raw.fluet);
Button bStop = (Button) findViewById(R.id.bStop);
bPlay.setWidth(10);

song1.setOnCompletionListener(new OnCompletionListener() {

        public void onCompletion(MediaPlayer mp) {

            bPlay.setText("Play");


        }
    });

bPlay.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            b = true;

            if (bPlay.getText().equals("Play") && b == true) {

                song1.start();

                bPlay.setText("Pause");
                b = false;
            } else if (bPlay.getText().equals("Pause")) {
                x = song1.getCurrentPosition();
                song1.pause();
                bPlay.setText("Resume");
                Log.v("log", "" + x);
                b = false;
            } else if (bPlay.getText().equals("Resume") && b == true) {
                song1.seekTo(x);
                song1.start();
                bPlay.setText("Pause");
                b = false;
            }


        }

    });
8
répondu Nikunj Patel 2013-05-30 09:06:07

à l'Intérieur du bouton, cliquez sur vérifier pour mediaPlayer.isPlaying(). Ceci retournera true si le lecteur multimédia joue autrement false.

donc maintenant avec ceci, marquez la valeur vous pouvez faire une déclaration if et basculer pour jouer ou faire une pause comme ceci,

button.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {

            if (mediaplayer.isPlaying()) {
                mediaplayer.pause();
            } else {
                mediaplayer.start();
            }
        }
    });
5
répondu Andro Selva 2013-05-30 09:05:23

ci-dessous le code prend soin de votre événement de clic de bouton play/pause avec des boutons en avant et en arrière pour chercher en avant et en arrière sur le seekbar fourni (qui est synchronisé avec la piste média). Actuellement, il joue juste UNE chanson. Cependant, vous pouvez ajouter à cela. C'est mon premier lecteur multimédia utilisant mediaplayer class, donc vous pourriez le trouver un peu primitif. Toutefois, si vous avez besoin vous pouvez aussi consulter les VideoView exemples. Il est apparemment plus facile avec

package in.org.Test;

import android.app.Activity;
import android.media.MediaPlayer;

import android.os.Bundle;

import android.view.View;
import android.view.View.OnClickListener;

import android.widget.ImageButton;

import android.widget.ProgressBar;
import android.widget.SeekBar;

import android.widget.Toast;

public class Test12Activity extends Activity implements OnClickListener,Runnable {

    private static final String isPlaying = "Media is Playing"; 
    private static final String notPlaying = "Media has stopped Playing"; 

    private SeekBar seek;

    MediaPlayer player = new MediaPlayer();
     private ImageButton plus,minus;

    ImageButton im;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        plus = (ImageButton) findViewById(R.id.imageButton2);
        minus = (ImageButton) findViewById(R.id.imageButton3);


        player = MediaPlayer.create(this, R.raw.sound2);


        player.setLooping(false); 
        im = (ImageButton) this.findViewById(R.id.imageButton1);


        seek = (SeekBar) findViewById(R.id.seekBar1);
        seek.setVisibility(ProgressBar.VISIBLE);
        seek.setProgress(0);
        seek.setMax(player.getDuration());
        new Thread(this).start();


        im.setOnClickListener(this);
        player.start(); 

        Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show();


        plus.setOnClickListener(new OnClickListener()   {
            @Override
            public void onClick(View v) { int cu = player.getCurrentPosition();  player.seekTo(cu-5000); }});
        minus.setOnClickListener(new OnClickListener()  {
            @Override
            public void onClick(View v) {int cu = player.getCurrentPosition();  player.seekTo(cu+5000);}});


    }


    @Override
    public void onClick(View arg0) {
        if (arg0.getId() == R.id.imageButton1) {
        if(player.isPlaying())  {
        player.pause();

        Toast.makeText(this, notPlaying, Toast.LENGTH_LONG).show();
        ImageButton img1=(ImageButton) this.findViewById(R.id.imageButton1);

        img1.setImageResource(R.drawable.play);

         }
        else
        {
            player.start();
            Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show();

            ImageButton img1=(ImageButton) this.findViewById(R.id.imageButton1);
            img1.setImageResource(R.drawable.pause);
        }   
        }
      }

    @Override
    public void run() {
        int currentPosition= 0; String s;
        int total = player.getDuration();
        while (player!=null && currentPosition<total) {
            try {
                Thread.sleep(1000);
                currentPosition= player.getCurrentPosition();
            } catch (InterruptedException e) {
                return;
            } catch (Exception e) {
                return;
            }            

            seek.setProgress(currentPosition);


        }


    }
}
3
répondu Invictus 2012-09-27 13:09:41
 MediaPlayer mpE = MediaPlayer.create(GuitarTuner.this, R.raw.test2 );

    play.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (mpE.isPlaying()) {
                mpE.pause();
                play.setBackgroundResource(R.drawable.play);
            } else {

                mpE.start();
                play.setBackgroundResource(R.drawable.pause);
            }

        }
    });
1
répondu Muhammad Usman Ghani 2014-04-18 05:28:28

pour arrêter le Mediaplayer:

Mediaplayer.pause();
length = Mediaplayer.getCurrentPosition();

et pour reprendre le joueur de la position où il s'est arrêté récemment est fait par:

Mediaplayer.seekTo(length);
Mediaplayer.start();
0
répondu Hadi Salehy 2017-02-14 09:06:22

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //      Play song
    Button playButton = (Button) findViewById(R.id.play);
    playButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            mMediaPlayer.start(); // no need to call prepare(); create() does that for you
        }
    });
    //      Pause song
    Button pauseButton = (Button) findViewById(R.id.pause);
    pauseButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            mMediaPlayer.pause();
        }
    });

    //      Stop song - when you stop a song, you can't play it again. First you need to prepare it.

    Button stopButton = (Button) findViewById(R.id.stop);
    stopButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            mMediaPlayer.stop();
            mMediaPlayer.prepareAsync();
        }
    });

}

}

0
répondu rfurtado 2017-03-31 01:29:10