wake-up-neo.com

Wie kann ich den Mediaplayer wieder aufnehmen?

Ich verwende einen Mediaplayer.

Ich habe die Möglichkeit, den Player zu starten, zu stoppen und zu pausieren. Das Problem, das ich habe, ist, dass ich die Option nicht finden kann, um das Lied an dem Punkt fortzusetzen, an dem es zuvor angehalten wurde.

Jede Hilfe wäre sehr hilfreich.

24
Prateek Raj

Vielen Dank für Ihre Aufmerksamkeit, aber ich habe es selbst bekommen

für die Pause des Mediaplayers verwendete ich:

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

und für die Wiederaufnahme des Spielers von der Position, an der er kürzlich aufgehört hat, geschieht Folgendes:

Mediaplayer.seekTo(length);
Mediaplayer.start();
98
Prateek Raj

Ich denke, Sie sollten die Dokumentation hier durchgehen: http://developer.Android.com/reference/Android/media/MediaPlayer.html

Einige Zitate aus den Dokumenten:

Die Wiedergabe kann angehalten und gestoppt werden, und die aktuelle Wiedergabeposition kann angepasst werden. Die Wiedergabe kann angehalten werden via pause (). Wenn der Aufruf zu pause () kehrt das MediaPlayer-Objekt zurück der angehaltene Zustand. Notiere dass der Übergang vom Started-Zustand zu der angehaltene Zustand und umgekehrt geschieht asynchron im Player Motor. Es kann einige Zeit dauern, bevor Der Zustand wird in Aufrufen an .__ aktualisiert. isPlaying (), und es kann eine Anzahl von .__ sein. Sekunden bei gestreamtem Inhalt. 

  • Start () aufrufen, um fortzufahren Wiedergabe für einen angehaltenen MediaPlayer Objekt und die wiederaufgenommene Wiedergabe Position ist die gleiche wie dort, wo sie war pausierte Wenn der Aufruf von start () Gibt das angehaltene MediaPlayer-Objekt zurück kehrt in den Zustand Gestartet zurück.
  • Das Aufrufen von pause () hat keine Auswirkung auf ein MediaPlayer-Objekt, das sich bereits in .__ befindet. der angehaltene Zustand.

Staaten erklärt:

States of MediaPlayer

Und zitieren Sie aus der start () - Methode des MediaPlayer

public void start ()

Startet oder fortsetzt Wiedergabe. Wenn die Wiedergabe zuvor angehalten wurde, wird die Wiedergabe fortgesetzt von wo es angehalten wurde. Bei Wiedergabe gestoppt oder nie gestartet wurde vorher beginnt die Wiedergabe am Anfang.

Um Ihre Frage direkt zu beantworten, um die angehaltene MediaPlayer-Instanz von dem Punkt aus fortzusetzen, an dem sie angehalten wurde, verwenden Sie start () für diese Instanz erneut.

25
Maciej Pigulski

In der akzeptierten Antwort lautet die richtige Reihenfolge:

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

14
Hoven

wenn Sie zwei Buttons verwenden, einen für das Spiel und einen für die Pause, funktioniert der folgende Code:

                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

Bei der Verwendung von seekTo habe ich festgestellt, dass der Track oft am Anfang des Tracks beginnt und dann an dem Punkt weitergeht, an dem seekTo gesetzt wurde.

Was für mich funktionierte, war die Lautstärke stummgeschaltet und dann wieder hochzudrehen, sobald der aktuelle Fortschritt mit der aktuellen Suche übereinstimmt (in global gespeichert).

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

Machen Sie zwei Tasten zum Spielen und Pausieren. Und benutze diesen Code. Es hat für mich funktioniert.

0
Mohaize Jefrin