Hilfe bei Mediaplayer funktionen

  • Antworten:6
  • Bentwortet
Hansi
  • Forum-Beiträge: 14

15.05.2015, 23:31:32 via Website

Hallo Leute,

ich habe zwei Switch Button und möchte gern zwei Sounds gleichzeitig abspielen.

Schalte ich den ersten an ,startet der Sound und wiederholt sich . Beim ausschalten stop der Sound.
Schalte ich den zweiten an genau das selbe.

Schalte ich beide an werden beide abgespielt und mein Problem ist :

Wenn ich beide Schalter an habe und ein aus mache stopt der Sound nicht. Schalte ich den Button wieder an.
Habe ich anstatt zwei Sounds drei Sounds.
Hier ein Teil des Codes:
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {

if(isChecked){
mySwitch1.setChecked(true);
mp = MediaPlayer.create(MainActivity.this, R.raw.hallo);
mp.setLooping(true);
mp.start();

}else{
mySwitch1.setChecked(false);
mp.stop();

}

}
});
//set the switch to ON
mySwitch2.setChecked(false);
//attach a listener to check for changes in state
mySwitch2.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {

if(isChecked){
mySwitch2.setChecked(true);
mp = MediaPlayer.create(MainActivity.this, R.raw.beep);
mp.setLooping(true);
mp.start();

}else{
mySwitch2.setChecked(false);
mp.stop();

}

}
});

}
}
habe es schon mit mp.reset versucht und weiteren optionen.
Hoffe mir kann da jemand weiter helfen.
Danke

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.05.2015, 23:39:37 via Website

Hallo Hansi,
Herzlich wilkommen hier im Forum :)



Ich denke sowas lässt sich mit dem SoundPool viel leichter umsetzen: http://examples.javacodegeeks.com/android/android-soundpool-example/

Beim MediaPlayer hat man immer das Problem mit den instanzen und der "Unhadlichkeit"

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Hansi
  • Forum-Beiträge: 14

15.05.2015, 23:56:27 via Website

Vielen Dank für deine Antwort.

Das habe ich gemerkt.

Ich schau mir das die Tage mal genauer an.

Mit dem Mediaplayer fand ich es einfacher und schneller funktioniert aber nicht richtig oder habe ich da was falsch gemacht in dem Code?
Einzeln an und aus funktioniert mit beiden Sounds.
Beide an einer aus sind es immer noch zwei .
Schalte ich den einen wieder an drei Töne zweimal derselbe. Habe es auch schon mit ToggleButton versucht genau das selbe Problem.

Gruß
Hansi

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

16.05.2015, 00:01:41 via Website

Ja weil du ein MediaPlayer Objekt für mehere Sounds benutzt.
Wenn du die Sounds einzeln starten und Stoppen willst musst du für jeden auch ein eigenes Objekt nehmen ,denn woher soll das programm denn wissen welchen Sound es stoppen soll wen du immer nur mp.stop() machst.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Hansi
  • Forum-Beiträge: 14

16.05.2015, 00:12:19 via Website

Also zwei MediaPlayer Objekte wie zb. mp und mp1

habe ich schon versucht gehabt. Hatte genau das selbe Problem:-)
Irgendwann ist die App auch abgestürzt beim zweiten mp Objekt.

Ich mache das wie du gesagt hast mit dem Soundpool.

Danke für deine Antwort.

Antworten
Hansi
  • Forum-Beiträge: 14

26.05.2015, 11:25:54 via Website

Hey ich bins nochmal :-)

wollte einfach mal mein Fortschritt schreiben.

Mit den Mediaplayer habe ich es geschafft, mehrere Sounds gleichzeitig abzuspielen .
Konnte auch jeden Sound einzeln laut und leiser stellen.

Jedoch finde ich die Pausen bei einer Loopschleife sehr schlecht und die Qualität lässt nach.

Also habe ich mich mit Soundpool auseinandergesetzt . Wie du gesagt hattest.
Siehe da die Loops sind perfekt.

Aber:

Soundpool spielt die Sounds nur ca. 6-10 Sekunden ab auch wenn sie länger sind . Aber das schnell und perfekt.
Die mp3 Datei darf nicht größer als 200 KB sein . Dann funktioniert die Loop schleife nicht mehr.
Versucht man eine mp3 Datei kleiner zu machen funktioniert auch nichts mehr.
Deswegen ist mein Fazit Soundpool für kurze Sounds und Mediaplayer für längere .

Gruß Hansi:-)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

26.05.2015, 17:15:12 via App

Genau der Soundpool hat eine feste Buffergröße von 1 mb im pcm also raw format. somti spielt der codec keine Rolle.

Gut dass du es jetzt auch mit dem MediaPlayer hinbrkommen hast.

Bitte setze deinen Thread noch auf Beantwortet, indem du im Browser über deinem ersten Post auf "Mehr"->"Beantwortet" klickst.

Danke (smug)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten