2017-06-30 11 views
0

トグルボタンで音楽を一時停止私のコードが、動作しません遊びと、これは私がプレイ音楽をしようとしている

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(); 
} 

エラーログ:

java.lang.IllegalStateException android.media.MediaPlayer._start(ネイティブメソッド) でcom.myapp $ MainActivity $ 2.onClickでandroid.media.MediaPlayer.start(MediaPlayer.java:1384) (MainActivity.java:80)

答えて

0

最初に、あなたはToggleButtonがあり、ToggleButtonsetOnClickListener()を使うべきではありませんあなたのエラーについて、多分あなたはそれをクリックしたときに、あなたのToggleButtonは、チェックされてToggleButtonがチェックになって、あなたのコードmediaPlayer.start();を呼び出していますが、すでにonCreate()でメディアプレーヤを起動し、あなたがそれを確認することができ、compent 第二の状態をlisteneする機能setOnCheckedChangeWidgetListener

関連する問題