Android Q and above provides functionality to include seek-able progress bar in our notification. I am creating a app that plays audio files from external storage.
MediaPlayer control progressbar
I want to implement the progress bar as shown in the image.
The problem is that i have implemented a progress bar and it is seekable but its doesnot update the mediaplayer when user seeks to a particular position on seekbar .
My implementation of progressbar
The code
Following code sets the metadata
mediaSession.setMetadata(MediaMetadataCompat.fromMediaMetadata(new MediaMetadata.Builder().putString(MediaMetadata.METADATA_KEY_TITLE, title) .putLong(MediaMetadata.METADATA_KEY_DURATION, Long.parseLong(listSongs.get(position).getmDuration())).build()));
Following code checks if mediaplayer is playing or not and sets the PlaybackState
if(mediaPlayer!=null) {
if(!mediaPlayer.isPlaying()){
playbackState = PlaybackState.STATE_PLAYING;
}
else{
playbackState = PlaybackState.STATE_PAUSED;
}
mBuilder = new PlaybackState.Builder()
.setState(playbackState
, musicService.getCurrentPosition()
, 1
)
.setActions(PlaybackState.ACTION_SEEK_TO|
PlaybackState.ACTION_PAUSE |
PlaybackState.ACTION_SKIP_TO_NEXT |
PlaybackState.ACTION_SKIP_TO_PREVIOUS |
PlaybackState.ACTION_PLAY_PAUSE)
;
mediaSession.setPlaybackState(PlaybackStateCompat.fromPlaybackState(mBuilder.build()));
mediaSession.setActive(true);