android studio mediaplayer?
hallo
kann jmd helfen ich habe mir eine sound button app programmiert, funktioniert auch gut , aber wenn ich auf den button klicke wird sound abgespielt (was auch so sein soll) aber wenn ich nochmal drauf drücke kommt der sound nochmal und hört nicht auf kann mir jemand bitte ein script schicken bzw sagen wie ich das schaffe dass der sound bei erneutem drücken aufhört
danke schonmal im voraus
(ist in kotlin geschrieben)
hier noch mein bisheriges skript als bild
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.