So habe ich eine Suchleiste, die funktioniert, wenn ich es ziehe, beginnen die Songs von dieser Position zu spielen, aber was ich will ist, wenn ich die Suchleiste ziehen, will ich um meine Textansicht zu sehen, die die aktuelle Songposition anzeigt, wenn ich sie ziehe, so kann der Benutzer eine spezifische Zeit auswählen, um damit anzufangen.Wie aktualisiere ich Textview, die aktuelle Zeitposition von einem Song zeigt
Gerade jetzt, wenn ich die Suchleiste ziehen, ändert sich die Textansicht nicht und zeigt nur die letzte Position, als ich begann, es zu ziehen.
Dies ist mein Code
private Runnable mUpdateTime = new Runnable() {
@Override
public void run() {
long songCurrentTime = mediaPlayer.getCurrentPosition();
long songTotalTime = mediaPlayer.getDuration();
tvSongCurrentTime.setText(""+utilities.msToTimer(songCurrentTime));
tvSongTotalTime.setText(""+utilities.msToTimer(songTotalTime));
int progress = (int)(utilities.getProgressPercentage(songCurrentTime, songTotalTime));
seekBar.setProgress(progress);
mHandler.postDelayed(this, 100);
}
};
public void updateProgressBar(){
mHandler.postDelayed(mUpdateTime, 100);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
mHandler.removeCallbacks(mUpdateTime);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
mHandler.removeCallbacks(mUpdateTime);
int songTotalTime = mediaPlayer.getDuration() ;
int currentPosition = utilities.progressToTimer(seekBar.getProgress(), songTotalTime);
mediaPlayer.seekTo(currentPosition);
updateProgressBar();
}
Hier können Sie sehen, was im
Die erste gif ist, was ich jetzt haben, und die zweite zu erreichen versuchen, auf ist, was ich erhalten möchte
BEARBEITEN;
Ich habe noch nicht herausgefunden, wie man das macht, weiß jemand, wie es geht? Ich denke, ich muss Code in die onProgressChanged, ich habe versucht, die Songs aktuelle Zeit und die Gesamtdauer, aber wie kann ich aktualisieren die Textansicht, wenn ich die Suchleiste scrollen, wie in den Gifs ich in den Beitrag hinzugefügt. https://imgur.com/a/zEpWI
Es tut mir leid, wenn seine ein bisschen vage, was ich – Vince
Ein kleiner Punkt wollen, sollten Sie nicht die Dauer des Song aktualisieren müssen alle 1/10 Sekunden. Man könnte annehmen, dass 'tvSongTotalTime' konstant ist. – Sam
Was passiert, wenn Sie 'updateProgressBar();' in 'onStopTrackingTouch()' mit 'tvSongCurrentTime.setText (" "+ utilities.msToTimer (mediaPlayer.getCurrentPosition())) ersetzen;'? – Sam