MediaPlayer start nur 1x? Oder ?

S

Shelly22

Fortgeschrittenes Mitglied
0
Hallo.

Habe ein Button wo ich mit die Musik an und aus machen kann.
Aber mir ist damals schon aufgefallen das sich MediaPlayer immer nur 1x an und 1x aus machen lässt.

Ein beispiel um besser zu verstehen.

Habe

boolean musikoff;
mp = MediaPlayer.create(this, R.raw.backmusik);

und dann in der Methode so:


Code:
private void ButtonListener() {
        Button button = (Button) findViewById(R.id.button3);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                if (musikoff) {

                    mp.start();
                    musikoff = false;
                } else {

                    mp.stop();
                    musikoff = true;
                }
            }
        });
    }
Mache ich aber noch eine neue dazu wie:
mp2 = MediaPlayer.create(this, R.raw.backmusik);

und setze sie dazu dann geht wieder die musik an.
Aber halt nicht mehr aus.
Müsste ich also mp2.stop(); wieder machen.

Also wie gesagt..Geht nur einmal an und einmal aus mehr mir die mp.
Ist das normal oder mein fehler?


LG
 
Zuletzt bearbeitet:
Dein Problem ist, dass du nachdem du den MediaPlayer mit stop() angehalten hast du ihn nicht mehr mit start() starten kannst? Korrekt?

Also ich hab keine Ahnung von Android App Programmierung, aber hab mir mal kurz die API angesehen.

Eigentlich müsste der Player wieder ohne Probleme starten. Ob der Player abspielt würd ich aber (wenn die Methode schon angeboten wird) mittels isPlaying() prüfen und deinen boolean weg lassen.

Ferner: Rufst du nach dem Initialisieren die prepare() bzw. prepareAsync() Methode auf?

Zum Testen probier auch mal ob start() -> pause() -> start() funktioniert.
 
  • Danke
Reaktionen: Shelly22
Danke dir =).

Habe voll vergessen das es noch die pause() gibt *grins*

Mit pause() geht es also so wie ich es geschrieben habe in der Methode :)
Den rest was du meintest kenn ich leider noch nicht wirklich.

Muss ich also erstmal pause() nehmen.



LG
 
Zuletzt bearbeitet:
Seltsam, der Player müsste sich trotzdem wieder starten lassen, denn laut API wird die Instanz mit stop() nicht zerstört und mit start() müsste es wieder laufen, da:

Starts or resumes playback. If playback had previously been paused, playback will continue from where it was paused. If playback had been stopped, or never started before, playback will start at the beginning.
MediaPlayer | Android Developers
 
Richtig.

Das schreibt er in den Log wenn ich es gestopt habe und wieder starten will.

06-27 00:41:56.917: E/MediaPlayer(554): start called in state 64
06-27 00:41:56.922: E/MediaPlayer(554): error (-38, 0)
06-27 00:41:56.922: E/MediaPlayer(554): Error (-38,0)
 

Ähnliche Themen

Laser5001
  • Laser5001
Antworten
2
Aufrufe
900
Laser5001
Laser5001
A
Antworten
1
Aufrufe
636
swa00
swa00
R
  • Gesperrt
  • roland-senior
Antworten
2
Aufrufe
798
Fulano
Fulano
Zurück
Oben Unten