作者sweet00914 (別理我)
看板AndroidDev
標題[問題] 播放音檔之間如何控制Button Enable?
時間Tue Aug 7 17:30:10 2012
問題:
有一按鈕當按鈕按下時,播放音檔且按鈕的狀態要變成不可觸發。當音檔
播放完畢時,將按鈕的狀態變成可觸發。但是,下述程式碼會在音檔播放完成
後才按鈕的狀態變成不可觸發,請問這是為什麼呢?
Code:
btn.setEnabled(false);
playmp3(am, 檔名);
while (mp.isPlaying() == true)
{
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
break;
補充:
上述程式碼是在
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Code
}
});
---------------------------------------------------------
嘗試:
btn.setEnabled(false);
playmp3(am, 檔名);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
發現按鈕的狀態在設定的3秒後才改變,並非按下按鈕後就立即改變。
================================================================
Sol:
new Thread(new Runnable() {
public void run() {
while (mPlayer.isPlaying()==true) {
try {
Message msg = new Message();
msg.what=0;
handler.sendMessage(msg);
Thread.sleep(500);
} catch (Exception e) {
e.printStackTrace();
}
}
Message msg = new Message();
msg.what=1;
handler.sendMessage(msg);
}
}).start();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.55.241
※ 編輯: sweet00914 來自: 220.130.55.241 (08/07 17:46)
→ jacktoad:我看不到你哪時候要執行btn.setEnabled(true); 08/07 17:48
※ 編輯: sweet00914 來自: 220.130.55.241 (08/07 17:57)
→ givemepass:Thread+Handler 就解決了! 08/07 20:26
→ sweet00914:由衷感謝。0.0 08/07 22:24
※ 編輯: sweet00914 來自: 114.38.42.45 (08/07 22:27)