web-dev-qa-db-fra.com

Bouton lecture/pause du lecteur multimédia Android

Dans mon projet, je lis un fichier de musique dans le lecteur multimédia Android en utilisant le code suivant.

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

ce qui précède est codé dans le clic du bouton de lecture . Je veux mettre en pause la lecture en cliquant à nouveau sur le même bouton.

19
Dray

Vous pouvez utiliser un simple if-check pour gérer la pause. Essaye ça:

if(mPlayer.isPlaying()){
    mPlayer.pause();
} else {
    mPlayer.start();
}
50
Ruuhkis

S'il vous plaît 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
Nikunj Patel

Dans le bouton, cliquez sur Vérifier pour mediaPlayer.isPlaying(). Cela retournera vrai si le lecteur multimédia joue faux sinon. 

Alors maintenant, avec cette valeur de drapeau, vous pouvez faire une instruction if et passer en lecture ou en pause de la sorte

button.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {

            if (mediaplayer.isPlaying()) {
                mediaplayer.pause();
            } else {
                mediaplayer.start();
            }
        }
    });
5
Andro Selva

Le code ci-dessous prend en charge votre événement de clic sur le bouton lecture/pause ainsi que les boutons avant et arrière pour la recherche avant et arrière sur la barre de recherche fournie (synchronisée avec la piste multimédia). Actuellement, il ne joue qu’UNE chanson. Cependant, vous pouvez ajouter à cela. Ceci est mon premier lecteur multimédia utilisant mediaplayer class, vous pourriez donc le trouver un peu primitif. Toutefois, si vous en avez besoin, vous pouvez également consulter les exemples VideoView. C'est apparemment plus facile avec VideoView car la console multimédia standard est déjà présente sous la forme de widgets prédéfinis. la conception du lecteur est donc beaucoup plus facile.

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
Invictus
 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

classe publique MainActivity étend AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

// la chanson a été précédemment enregistrée dans le dossier raw. Le nom de la chanson est mylife (c'est un fichier mp3) MediaPlayer final mMediaPlayer = MediaPlayer.create (MainActivity.this, R.raw.mylife);

    //      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
rfurtado

Pour mettre en pause la Mediaplayer:

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

et pour reprendre le joueur de la position où il s’est arrêté dernièrement se fait par:

Mediaplayer.seekTo(length);
Mediaplayer.start();
0
Hadi Salehy