Mehrfaches Song / Sound Abspielen verhindern

  • Antworten:3
  • Bentwortet
Georg C.
  • Forum-Beiträge: 235

08.02.2014, 23:04:02 via Website

Hallo,
ich werde WAHNSIN!
....
Ein (nicht gerade komplexes) Musik- Abspielsversuch "funktioniert" nicht.
Als Test, habe ich mit den "Grundlagen gespielt".
Wenn ich auf ein "Abspielen" - Button drücke, wird ein "Song" abgespielt - OK!
Wenn ich auf den selben "Abspielen" - Button nochmall drücke, wird selber "Song" erneut (doppelt ... vierfach ...) abgespielt - NICHT OK!
Damit ein Song mit dem "Abspielen" - Button nicht mehrfach gestartet werden kann, habe simplen abfrage gemacht; (auch viele Varianten ausprobiert ....)

1public MediaPlayer mp = null;
2...
3...
4public void onClick(View v) {
5
6 mp = MediaPlayer.create(getApplicationContext(), R.raw.test1);
7
8 //if(!mp.isPlaying()){
9 //if(mp.isPlaying() == true){
10
11 if(mp != null && !mp.isPlaying()){
12 mp.start();
13 }
14
15 //} else {mp.stop();}
16...

Nun egal welche Variante (der "Absicherung") ich nicht benutze, das "Song" wird immer wieder neu gestartet (abgespielt).
Was mache ich falsch?

Gruß
Georg

Sorry für Gramatik & Stilistik Fehler.

Antworten
Michele
  • Forum-Beiträge: 1.525

09.02.2014, 00:23:44 via Website

Hallo.

Was denn daran so schwer?:D

1mp.isPlaying() == false
lässt du dein Sound/Musik abspielen.

Also
1mp.seekTo(0);
2mp.start();

Und wenn
1mp.isPlaying() == true
machste
1mp.pause

So wird er immer wieder von vorne gespielt, wenn du ihn neu startest.
Wenn er nicht neugestartet werden soll, sondern weiter gespielt werden soll, nimmst du einfach "seekTo();" weg.



LG

— geändert am 09.02.2014, 00:42:24

Antworten
Georg C.
  • Forum-Beiträge: 235

09.02.2014, 02:00:19 via Website

Hi Michele,
danke für die Antwort.
Mein Deutsch (bzw. Erklärungsstill) ist "das Letztes" - Sorry!!
Ich versuche mich zu verbessern ... aber ... es "klappt" nicht immer. :angry:
Entschuldigung.

Mein Problem ist (war);

Ein klick auf den "Abspielen" Button, soll einen Song abspielen.
Nun wenn ich auf den "Abspielen" Button mehrmals klicke, so wird das Song mehrmals abgespielt. Das ist aber nicht erwünscht, deshalb ne Absicherung ... also wenn schon gestartet (Aktiv, bei abspielen ...) isPlaying() soll nicht nochmall gestartet werden.
Ok.

Ich habe einen (?Denk) Fehler gemacht, - und zwar;
Den MediaPlayer Objekt, in der onClick(...) Methode initialisiert!

Die -> isPlaying() Abfrage wurde dabei (immer wenn es geklickt [neue Instanz gebildet]) nicht wahr genommen! (Erst jetzt [nach weiteren Debug]) wurde mir es "Klar geworden".
Das MediaPlayer Objekt muss VOHER! "bekannt gemacht werden", damit es sich auch auswerten lässt.
Also bitte um ENTSCHULDIGUNG!
Peinlich, .... Peinlich. :*)

LG
Georg

Sorry für Gramatik & Stilistik Fehler.

Antworten
Michele
  • Forum-Beiträge: 1.525

09.02.2014, 15:15:53 via Website

Richtig :D

Das übersah ich auch.
Wenn das hier also geklärt ist, dann bitte Thread auf "Beantwortet" setzen.



LG

— geändert am 09.02.2014, 15:17:49

Antworten