1
我的活動每秒播放一次特定音效。 以下代碼有效,但存在一個錯誤:偶爾聲音每秒鐘播放兩次。這隻會偶爾發生一次(每10-20次嘗試一次)。當它發生時,整個運行過程中會發生雙重聲音,開始結束。所以,如果我看到這個活動沒有發現錯誤,它就會保持整個活動的運行狀態。通過Handler發生兩次定時音效
下面是相關的代碼 - 它有什麼問題?謝謝!
private Handler mHandler = new Handler();
@Override
protected void onResume() {
super.onResume();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.post(mUpdateTimeTask);
}
@Override
protected void onPause() {
// Another activity is taking focus (this activity is about to be "paused").
mHandler.removeCallbacks(mUpdateTimeTask);
super.onPause();
}
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
PlayTick();
mHandler.removeCallbacks(this);
mHandler.postDelayed(this, 1000);
}
};
public void PlayTick() {
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
float actualVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVolume = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = actualVolume/maxVolume;
soundPool.play(soundID, volume, volume, 1, 0, 1f);
}