Probleme mit Mediaplayer

A

androidnoob1384

Neues Mitglied
0
Hallo Leute,
ich versuche mich im moment in der app programmierung. Nun möchte ich mit einem knopf musik starten und mit dem anderen wieder beenden. Hört sich erstmal einfach an und habs auch eigentlich hinbekommen, nur mein problem ist das trotz des pause() befehls die musik nicht stoppt.
Hier mein code:

public void musicon(View view)
{
MediaPlayer mp=MediaPlayer.create(MainActivity.this, R.raw.musik);
mp.seekTo(0);
mp.start();
}
public void musicoff(View view) {
if(mp!=null)
{
mp.pause();
}


}

der aus-button sieht so aus:

<Button
android:id="@+id/Button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="musicoff"
android:text="@string/musicoff"/>

würde mich über schnelle hilfe riesig freuen:thumbsup:
Danke im vorraus :)
 
Hast du am anfang der Klasse
Code:
static MediaPlayer mp;
Wenn nein füg das mal ein, dass es dann so aussieht:
Code:
public class Ding extends Activity
{
   static MediaPlayer mp;
   //onCreate lass ich jetzt mal weg :D
   public void musicOn(View v)
   {
      mp = Mediaplayer.create(this, R.raw.music);
      mp.start();
   }
/* Das static übergibt den erstellten MediaPlayer an die 2. Methode weiter*/

   public void musicOff(View v)
   {
      mp.releae()
      //Löst MediaPlayer auf, dadurch wird mp.seekTo(0); überflüssig :)
   }
}

Hoffe das hilft :D
 
So wie das geschrieben hast kann das nicht funktionieren.
eigentlich dürfte er nicht mal kompilieren.

Denn mp ist in der musicoff methode unbekannt.
Falls du den trotzdem wie Greenstar schreibt woanders auch noch definiert hast,
dann setzt du in deiner musicOn Methode eine andere variable, die zufällig den gleichen Namen hat auf den Mediaplayer.
Du versteckst damit die globale Variable mp.
Dein mp in der musicOn Methode ist dann eine andere (im prinzip könntest du sie dort auch mp2 nennen).

Deshalb ist mp != null immer false und die musik wird nicht gestoppt
 
Vielen dank euch beiden:thumbsup:
klingt natürlich im nachhinein immer logisch:biggrin: *facepalm*
 
Ich muss das jetzt nochma aufgreifen:D
ich möchte den mp jetzt in einer anderen activity stoppen und starten. Ist das möglich?
 
Ich würd das so machen, wenn du oben (in der MainActivity) den
Code:
static MediaPlayer mp;
hast:
Code:
public class Ding2 extends Activity
{
     public MediaPlayer mp2 = Ding.mp;

     public void onCreate(Bundle savedInstanceState)
     {
          //onCreate
     }
}

:D
 
für den Service bin ich leider zu unfähig:D
Aber hiermit hats geklappt:
Greenstar schrieb:
Ich würd das so machen, wenn du oben (in der MainActivity) den
Code:
static MediaPlayer mp;
hast:
Code:
public class Ding2 extends Activity
{
     public MediaPlayer mp2 = Ding.mp;

     public void onCreate(Bundle savedInstanceState)
     {
          //onCreate
     }
}
:D
Dankeschön:thumbsup:
 

Ähnliche Themen

S
Antworten
4
Aufrufe
995
Sempervivum
S
R
Antworten
3
Aufrufe
1.633
Ritartet
R
B
Antworten
4
Aufrufe
496
bb321
B
Zurück
Oben Unten