I am developing an app that plays music from raw music files and it updates seekbar once every second while the media player
is playing. However, this is interrupting audio each time the seekbar is updated through Runnable. I've tried using Sound Pool (from here) or creating new Thread suggested by other posts but the issue still exists. Should I be using service instead?
The following code snippet is run from a ListFragment. Thanks.
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
updateProgress = false;
}
});
seekBar.setMax(mediaPlayer.getDuration());
seekBar.setProgress(0);
updateProgress = true;
updateRunnableHandler = new Handler();
mUpdateRunnable = new Runnable() {
@Override
public void run() {
if (updateProgress) {
seekBar.setProgress(mediaPlayer.getCurrentPosition());
updateRunnableHandler.postDelayed(mUpdateRunnable, 1000);
}
}
};
updateRunnableHandler.postDelayed(mUpdateRunnable, 1000);
mediaPlayer.start();