我正在制作音频播放器应用程序,我希望能够刷新显示当前播放位置的搜索栏和显示时间的文本 View 。我能够做到,但是有问题。搜寻栏和文本 View 更新时,音频每隔一秒钟就会出现一点延迟。就像 View 更新时每秒暂停一小段时间一样。
这是我的更新程序类
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);
}
}
最佳答案
我能够解决问题。我没有在搜索栏的OnSeekBarChangeListener中使用 bool(boolean) fromUser来防止以编程方式设置进度时调用它。每当进度更新时,它都会寻找mediaPlayer,因此会出现滞后。
关于android - Android刷新音频播放器中的搜索栏进度和播放持续时间,导致音频播放滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39820134/