2012-08-12 72 views
0

我無法確定如何管理打開/關閉音樂的切換按鈕。當用戶點擊它時,它應該持續循環直到關閉。我正在使用soundpool,如果有某種情況我可以通過使用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 /媒體播放器,這是一種在媒體的實際情況配合與國家打的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中無效輸出。 – 2012-08-12 03:56:00

+0

這是因爲tglbuttn沒有在內部類中定義。嘗試編輯。 – iTurki 2012-08-12 04:09:33

+0

Void是變量onClick的無效類型,當刪除onClick時無法解析爲某個類型。 – 2012-08-12 05:31:21