我正在使用CountDownTimer。我想在特定时间播放声音,仅供引用。好了,这是我的代码:
@Override
public void onTick(long l) {
if((TimeUnit.MILLISECONDS.toSeconds(l) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))) == 10){
reproducirAviso();
}
tiempo.setText(String.format("%02d:%02d", TimeUnit.MILLISECONDS.toMinutes(l),
TimeUnit.MILLISECONDS.toSeconds(l) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))));
}
怎么了?多次调用方法“reproducirAviso()”,声音断断续续地播放...
我该怎么做才能解决这个问题?
提前谢谢了!!!
最佳答案
如果您不想多次调用reproducirAviso(),请添加一个标志以检查是否已在运行reproducirAviso()。
例如,在某处设置静态 bool(boolean) 值,例如
public static boolean reproducing = false;
public void reproducirAviso()
{
//
// lots of your code
//
reproducing = false;
}
所以你的代码变成
@Override
public void onTick(long l)
{
if(!reproducing && (TimeUnit.MILLISECONDS.toSeconds(l) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))) == 10){
reproducirAviso();
}
tiempo.setText(String.format("%02d:%02d", TimeUnit.MILLISECONDS.toMinutes(l),
TimeUnit.MILLISECONDS.toSeconds(l) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))));
}