Ich streame Live-Audio und möchte die Funktion haben, den Mediaplayer anzuhalten und dann von der aktuellen Live-Position aus zu starten. Die Standardwerte Pause() und Start() beginnen genau dort, wo sie gestoppt wurde. Irgendwelche Ideen, wie man die aktuelle Position auf dem neuesten Stand hält, so dass Start() sofort ist?Update MediaPlayer Startposition bei Pause
Antwort
Haben Sie versucht, seekTo() aufzurufen?
Sie könnten es permanent aktualisiert halten, indem Sie seekTo() jede halbe Sekunde oder so mit TimerTask aufrufen, aber ich weiß nicht, wie ich darüber fühle.
EDIT: Wenn Sie seekTo() alle 500 Millisekunden aufrufen, würden Sie es mit der currentPosition + -Zeit seit dem letzten Aufruf (500 Millisekunden in diesem Fall) aufrufen, um es vorwärts zu bewegen. Aber ich weiß nicht, ob das der beste Ansatz ist. Eine andere Möglichkeit besteht darin, einen OnSeekCompleteListener zu erstellen, der ein neues seekTo (currentPosition + timeEllapsed) vorformatiert. In diesem Fall müssen Sie timeEllapsed wie so berechnen: currentSystemTime - systemTimeOnLastCall
Von http://developer.android.com/reference/android/media/MediaPlayer.html:
Die Wiedergabeposition mit einem Aufruf an seekTo (int) angepasst werden kann.
Obwohl der asynchrone seekTo (int) -Aufruf den richtigen Weg zurückgibt, kann der eigentliche Suchvorgang einige Zeit in Anspruch nehmen, insbesondere wenn Audio/Video gestreamt wird. Wenn der eigentliche Suchvorgang abgeschlossen ist, ruft die interne Player-Engine einen vom Benutzer bereitgestellten Code OnSeekComplete.onSeekComplete() auf, wenn zuvor ein OnSeekCompleteListener über setOnSeekCompleteListener (OnSeekCompleteListener) registriert wurde.
Bitte beachten Sie, dass seekTo (int) auch in den anderen Zuständen wie Prepared, Paused und PlaybackCompleted aufgerufen werden kann.
Außerdem kann die aktuelle Wiedergabeposition mit einem Aufruf von getCurrentPosition() abgerufen werden, was für Anwendungen wie einen Musik-Player hilfreich ist, die den Wiedergabefortschritt verfolgen müssen.
Es scheint, dass getCurrentPosition() die Position zurückgibt, an der es pausiert wurde, wie würde ich die Position des Endes des Streams (Live-Inhalt) zu seekTo() diese Position bekommen. – Brianjs
+1 für "Obwohl der asynchrone seekTo (int) -Aufruf den richtigen Weg zurückgibt, kann der eigentliche Suchvorgang eine Weile dauern, bis er beendet ist". Das hat mein Problem gelöst. – Tiago
Aufruf seekTo (0); nach stream.start(); hat für mich gearbeitet – aytek
Sie rufen MediaPlayer.getCurrentPosition auf, wenn Sie Ihren MediaPlayer pausieren, und rufen Sie MediaPlayer.seekTo auf, um die Position zu dem MediaPlayer zurückzusetzen, wenn Sie es neu starten.
Wird mich das nicht einfach zurück zu dem Ort im Stream, wenn Pause gedrückt wurde? Zumindest wenn ich es getestet habe, ist es das, was es tut. Ich möchte am Ende des Streams zum Live-Inhalt gehen, wenn Start erneut gedrückt wird. – Brianjs
Oh, Entschuldigung, ich habe das 'live' nicht bemerkt. Da Sie Live-Audio streamen, können Sie den MediaPlayer einfach "anhalten", wenn der Benutzer ihn anhält, den MediaPlayer "zurücksetzen" und "starten", wenn der Benutzer ihn neu startet. Sie werden immer am Ende des Livestreams sein. – neevek
- 1. MediaPlayer pause() Verhalten
- 2. Kleine Pause zwischen Looping MediaPlayer
- 3. Wie stelle ich die Startposition mit dem Android MediaPlayer ein
- 4. Pause und suchen in Android MediaPlayer
- 5. MediaPlayer Fehler: Pause aufgerufen Zustand 64
- 6. PagerAdapter Startposition
- 7. LLDB Pause bei Adresse
- 8. Pause/Stop MediaPlayer Android zu gegebener Zeit programmgesteuert
- 9. GDB bedingte Pause bei Funktionsparameter
- 10. JPlayer Startposition Problem
- 11. Startposition des NSSplitView-Teilers
- 12. iPhone MPMusicPlayerController Wiedergabe Startposition
- 13. MediaController mit MediaPlayer
- 14. Silverlight Dialog bestätigt Thema bei Pause
- 15. WordPress 'ACF-Plugin: Pause bei Anweisungen Feld
- 16. strace wird bei Pause stecken syscall
- 17. xCode 4.3 stürzt bei Pause oder Breakpoint
- 18. Festlegen der Startposition des Ordnerbrowserdialogs
- 19. Pause
- 20. MediaPlayer überhaupt nicht funktioniert
- 21. HTML, CSS - Row Pause für langen Tisch muss ein Update
- 22. javaFX MediaPlayer getCurrentTime() unzuverlässig
- 23. MediaPlayer Service Android
- 24. Crossbrowser Mediaplayer
- 25. java.lang.IllegalStateException Mediaplayer
- 26. MediaPlayer, ProgressBar
- 27. Wie setze ich die Handlungslinie an einer bestimmten Startposition?
- 28. Fehler bei PDO Update-Funktion
- 29. First_or_create mit Update bei Übereinstimmung?
- 30. React Update-Status bei Klick
gerade meine Antwort bearbeitet, hoffe es hilft – bughi