1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Shelly22, 26.06.2012 #1
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    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

    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 gefällt das.
  3. Shelly22, 27.06.2012 #3
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    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

    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

    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)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGET] App über href starten Android App Entwicklung 28.09.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Display-Breite zum App-Start auslesen Android App Entwicklung 11.03.2017
adb starten funktioniert nicht Android App Entwicklung 25.02.2017
Bei Erreichbarkeit eines Servers eine APP starten Android App Entwicklung 12.02.2017
App stürzt bei Start ab Android App Entwicklung 22.12.2016
Du betrachtest das Thema "MediaPlayer start nur 1x? Oder ?" im Forum "Android App Entwicklung",