1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

MediaPlayer start nur 1x? Oder ?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Shelly22, 26.06.2012.

  1. Shelly22, 26.06.2012 #1
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    0
    Registriert seit:
    02.06.2012
    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: 26.06.2012
  2. steerben, 27.06.2012 #2
    steerben

    steerben Erfahrener Benutzer

    Beiträge:
    247
    Erhaltene Danke:
    33
    Registriert seit:
    27.04.2011
    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.
     
    Shelly22 bedankt sich.
  3. Shelly22, 27.06.2012 #3
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    0
    Registriert seit:
    02.06.2012
    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: 27.06.2012
  4. steerben, 27.06.2012 #4
    steerben

    steerben Erfahrener Benutzer

    Beiträge:
    247
    Erhaltene Danke:
    33
    Registriert seit:
    27.04.2011
    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:

    MediaPlayer | Android Developers
     
  5. Shelly22, 27.06.2012 #5
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    0
    Registriert seit:
    02.06.2012
    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)
     

Diese Seite empfehlen