Ich benutze eine SeekBar, um den Fortschritt einer Audiodatei anzuzeigen und zu einer bestimmten Zeit zu suchen. Zum Aktualisieren verwende ich eine Runnable, die getCurrentPosition() auf einem MediaPlayer jede Sekunde aufruft. Jedes Mal, wenn das passiert, ist der Ton etwas verzögert. Da ich es oft anrufe, bekomme ich beim Spielen etwas merkbares Stottern. Wenn es relevant ist, verwende ich SetAudioStreamType (AudioManager.STREAM_MUSIC) und das Dateiformat ist mp4 mit AAC-Audio (kein Video) und ich benutze Android 2.3.4. Gibt es eine Möglichkeit, mit getCurrentPosition() gute Audiodaten zu erhalten, oder muss ich meine eigenen Fortschrittsberechnungen implementieren?Android MediaPlayer getCurrentPosition() verursacht Audio-Stottern
Das Runnable:
private Runnable mUpdateTask = new Runnable(){
@Override
public void run() {
mSeekBar.setProgress((int) (mPlayer.getCurrentPosition() * 100/mArrayAdapter.getRecording(mPlayingId).mDuration));
mHandler.postDelayed(mUpdateTask, 999);
}
};
Code bitte ... – Shiva
@Shivaji hinzugefügt Quelle – DariusL
ich für Videoview das getan hatte, Sie können es [hier] überprüfen (http://stackoverflow.com/questions/7802645/in-android-how-to-get-the-progress-time-of-the-video-played-under-videoview/7803166 # 7803166) –