web-dev-qa-db-fra.com

Comment reprendre le mediaplayer?

J'utilise un lecteur multimédia.

J'ai la possibilité de démarrer, d'arrêter et de mettre en pause le lecteur. Le problème que j’ai, c’est que je ne trouve pas l’option de reprendre la chanson à partir du moment où elle a été mise en pause.

Toute aide fournie serait vraiment utile.

24
Prateek Raj

Merci de votre attention mais je l'ai moi-même

pour mettre en pause le Mediaplayer que j'ai utilisé:

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();
98
Prateek Raj

Je pense que vous devriez parcourir la documentation trouvée ici: http://developer.Android.com/reference/Android/media/MediaPlayer.html

Quelques citations de la documentation:

La lecture peut être interrompue et arrêtée. et la position de lecture actuelle peut être ajusté. La lecture peut être suspendue via pause (). Lorsque l’appel à pause () renvoie, l'objet MediaPlayer entre l'état de pause. Notez que le passage de l'état Démarré à l'état de pause et vice versa se passe de manière asynchrone dans le lecteur moteur. Cela peut prendre un certain temps avant l'état est mis à jour dans les appels à isPlaying (), et cela peut être un nombre de secondes dans le cas de streaming contenu. 

  • Appelez start () pour reprendre lecture pour un MediaPlayer en pause objet, et la reprise de la lecture la position est la même que celle où il était en pause. Lorsque l’appel à démarrer () renvoie l'objet MediaPlayer en pause revient à l'état démarré.
  • L'appel de pause () n'a aucun effet sur un Objet MediaPlayer qui est déjà dans l'état de pause.

Les États ont expliqué:

States of MediaPlayer

Et citer la méthode start () du MediaPlayer

public void start ()

Commence ou reprend lecture. Si la lecture avait été précédemment été mis en pause, la lecture continue d'où il était en pause. Si lecture avait été arrêté ou n'avait jamais commencé avant, la lecture commencera au début.

Donc, pour répondre directement à votre question, pour reprendre l'instance de MediaPlayer suspendue à partir du point où elle a été suspendue, utilisez start () à nouveau sur cette instance.

25
Maciej Pigulski

Dans la réponse acceptée, le bon ordre est le suivant:

Mediaplayer.start();
Mediaplayer.seekTo(length);

14
Hoven

si vous utilisez deux boutons, un pour la lecture et un pour la pause, le code ci-dessous fonctionne et a essayé:

                playbtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mPlayer = MediaPlayer.create(MainActivity.this,         
                    R.raw.adhan);

                    if (mPlayer.isPlaying()) {


                    } else {
                        mPlayer.seekTo(length);
                        mPlayer.start();
                      }

                }
                });

               pausebtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

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


                  }
                });
1
Mohamed Haridy

Lors de l’utilisation de seekTo, j’ai trouvé qu’il commençait souvent à jouer au tout début du morceau, puis continuait à partir du point où seekTo avait été défini.

Ce qui a fonctionné pour moi a été mis en sourdine, puis réactivé une fois que currentProgress correspond à la recherche actuelle (stockée dans Global).

0
James Smith
   public class MainActivity extends AppCompatActivity {

    MediaPlayer mediaPlayer;
   public void play(View view) {
           mediaPlayer.start();
   }
   public void pause(View view){
           mediaPlayer.pause();
   }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mediaPlayer= MediaPlayer.create(this,R.raw.someaudio);
    }
}

Faites deux boutons pour jouer et mettre en pause. Et utilisez ce code. Cela a fonctionné pour moi.

0
Mohaize Jefrin