Ich mache eine Audio-Player-App, möchte ich in der Lage sein, eine Suchleiste aktualisieren, die aktuelle Wiedergabeposition und eine Textansicht zeigt die Zeit zeigt. Ich kann das, aber es gibt ein Problem. Jede Sekunde, wenn die Suchleiste und die Textansicht aktualisiert werden, gibt es eine kleine Verzögerung im Audio. Es ist, als ob es jede Sekunde für eine kurze Zeit pausiert, wenn die Ansichten aktualisiert werden.Android erfrischende Seekbar Fortschritt und Wiedergabedauer in Audio-Player verursacht Verzögerungen in der Audiowiedergabe
Hier ist meine Aktualisierungs Klasse
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);
}
}
Du hast meinen Nachtmann gerettet! –