【发布时间】:2017-02-10 17:18:11
【问题描述】:
我正在制作一个音频播放器应用程序,我希望能够刷新一个显示当前播放位置的搜索栏和一个显示时间的文本视图。我可以这样做,但有一个问题。当 seekbar 和 textview 更新的每一秒,音频都会有一个小的延迟。当视图更新时,它就像每秒暂停一小段时间一样。
这是我的更新程序类
import android.os.Handler;
import android.os.Looper;
import java.util.concurrent.TimeUnit;
class refreshSeekBar extends Thread{
private Handler mainHandler = new Handler(Looper.getMainLooper());
@Override
public void run() {
startRefreshingSeekBar();
}
private void startRefreshingSeekBar(){
Global.scheduledFuture = Global.scheduledExecutorService.scheduleWithFixedDelay(new Runnable() {
@Override
public void run() {
long S = Global.mediaPlayer.getCurrentPosition();
S = S/1000;
long M = S/60;
S = S%60;
String SS = ""+S;
String MM = ""+M;
if((S/10)<1){
SS = "0"+SS;
}
if((M/10)<1){
MM = "0"+MM;
}
final String MMM = MM;
final String SSS = SS;
mainHandler.post(new Runnable() {
@Override
public void run() {
Global.seekBar.setProgress(Global.mediaPlayer.getCurrentPosition());
Global.textCurrentDuration.setText(MMM+":"+SSS);
}
});
}
},0,1000, TimeUnit.MILLISECONDS);
}
}
【问题讨论】: