android studio mediaplayer?

1 Antwort

Das Problem liegt darin, dass du bei jeden Button Press ein neues MediaPlayer Objekt mit MediaPlayer.create(...) anlegst.

Die alte Wiedergabe scheint dabei noch weiter zu laufen. Es scheint wohl die Art zu sein, wie es implementiert wurde.

Eine Option wäre, wenn du vor dem Abspielen die alte Wiedergabe beendest. Ein .stop() würde den Dienst erfüllen. Laut Doku sollte ein .release() ausgeführt werden, um das Objekt zu entsorgen.

Das stop/release solltest du in ein try catch Block packen, da eventuell noch nichts abgespielt wurde bzw. es schon vorbei ist. Eventuell solltest du deine mediaPlayer Variable noch auf null checken.

Der schöne Weg ist, wenn du einmalig eine MediaPlayer Instanz erstellst und diese wiederverwertest. Für das Erstellen, sollte der Default Konstuktor reichen.

Mit .setDataSource(...) solltest du deine Datei auswählen können. Anschließend solltest du sie mit .play() abspielen können.

Du musst mit den States aufpassen. Eventuell musst du die vorherige Wiedergabe vorher abbrechen.

Dokumentation vom Media Player.