2017-06-30 4 views
0

je suis en train de la musique de jeu lorsque l'utilisateur clique dans MUSIQUE bouton à bascule et de la musique se met en pause quand il clique en MUSIC OFF Je dois aussi jouer de la musique quand l'application d'ouverture, cela est mon code, mais ne fonctionne paslecture et pause musique avec bouton à bascule

MediaPlayer mediaPlayer; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.vapor); 
    mediaPlayer.start(); 
    ..... 
    } 
MusicButton = (ToggleButton)findViewById(R.id.toggleButton); 
    MusicButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(MusicButton.isChecked()){ 
       mediaPlayer.start(); 
      } 
      else{ 
       mediaPlayer.stop(); 
       mediaPlayer.release(); 
      } 
     } 
    }); 

@Override 
public void onPause() { 
    mediaPlayer.stop(); 
    mediaPlayer.release(); 
    super.onPause(); 
} 

@Override 
public void onResume() { 
    mediaPlayer = MediaPlayer.create(this, R.raw.vapor); 
    mediaPlayer.setLooping(false); 
    mediaPlayer.start(); 
    super.onResume(); 
} 

journal des erreurs:

java.lang.IllegalStateException à android.media.MediaPlayer._start (native Method) à android.media.MediaPlayer.start (MediaPlayer.java:1384) à com.myapp $ MainActivity $ 2.onClick (MainActivity.java:80)

Répondre

0

d'abord, vous ne devriez pas utiliser setOnClickListener() sur ToggleButton, a ToggleButton fonction setOnCheckedChangeWidgetListener pour écouter l'état de compent deuxième, à propos de vous erreur, peut-être votre ToggleButton est décoché, quand vous avez cliqué, ToggleButton devenir vérifié et invoquer le code mediaPlayer.start();, mais vous démarrez mediaPlayer au onCreate() déjà, vous pouvez le vérifier.