2012-08-12 3 views
0

음악을 켜고 끌 수있는 토글 버튼을 관리하는 방법을 알아 내는데 어려움이 있습니다. 사용자가 클릭하면 계속 끌 때까지 계속 반복됩니다. soundpool을 사용하고 있습니다. 만약 mediaplay가 도움이 될만한 mediapool이나 soundpool을 사용하고 있다면 감지 할 수있는 어딘가에 있다면. 그러나 나는 문서에서 관련이있는 것을 발견 할 수 없다. 그리고 유사한 질문은 좋은 대답을 가지고 있지 않다. How to tell if a sound is still playing in soundpool사운드가 재생/관리 중인지 감지 토글 버튼

지금까지이 있습니다

final ToggleButton tglbuttn = (ToggleButton) findViewById(R.id.toggleButton1); 

     final SoundPool mySp = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); 
     final int soundId = mySp.load(this, R.raw.music, 1); 

     tglbuttn.setChecked(????????); //what could go here? 
     tglbuttn.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 


      } 

어떻게 든가는 toggleswitch이 블루투스 같은 것을 얻을 수 있지만, soundpool/MediaPlayer를 함께, 방법이 상태로 재생하는 미디어의 실제 상태에 묶을 경우 ToggleButton을의 :

tglbtn.setChecked(myBluetooth.isEnabled()); 

답변

2

당신은 버튼을 전환 할 수 isChecked 방법을 사용할 수 있습니다. 이 시도 : 다음

//Make your activity implements OnClickListener 
public class MyActivity extends Activity implements OnClickListener { 

: 마지막으로

//In your OnCreate() 
tglbuttn.setOnClickListener(this); 

:

//Add this method to your Activity 
@Override 
public void onClick(View v) { 
    if(v==tglbuttn) { 
     if(v.isChecked()) 
      play(); 
     else     
      stop(); 
     tglbuttn.setChecked(!tglbuttn.isChecked()); //It will be toggled 
    } 
} 
+0

을 나는 얻을의 IsChecked()보기에 대해 정의되지 않은 난 캐스트, 한 번 응용 프로그램 충돌을 추가하는 경우 버튼을 누릅니다. LogCat에서 유효하지 않은 캐스트 출력을 사용 중입니다. –

+0

tglbuttn이 내부 클래스에 정의되어 있지 않기 때문입니다. 편집을 시도하십시오. – iTurki

+0

Void는 변수 onClick에 대해 유효하지 않은 유형입니다. 제거 된 onClick은 유형으로 해석 될 수 없습니다. –