android - Mediaplayer progress update to seekbar not smooth? -


i working on app recorder , player. using mediaplayer play recorded .wav file , meantime want update seekbar. working fine problem mediaplayer progress updation seekbar not happening smoothly, if playig small file, thumb of seekbar jumps in seconds or between.

can me workaround make smooth seeking of progress in seekbar. code shown below.i totlay stuck here.

    mediaplayerintiate();     mediaplayersetsource();     mmediaplayer.start();     task = new timertask() {                 @override                 public void run() {                     graphbar.post(new runnable() {                         @override                         public void run() {                              if (mmediaplayer != null) {                                  if (playbuttonstate == mediamode.play) {                                     if (mmediaplayer.isplaying()) {                                         graphbar.setprogress(mmediaplayer                                                 .getcurrentposition());                                         mediaplayerupdatetimer(mmediaplayer                                                 .getcurrentposition());                                         enablerewindandforward();                                     }                                 }                              }                          }                     });                 }             };             timer = new timer();             timer.schedule(task, 0, 8); 

mmediaplayer.getcurrentposition() return current time in millisecond , updating seekbar maximum capacity 100. make 1 formula length of file , 100. try function

    mediaplayer mmediaplayer = new mediaplayer();     final seekbar mseelbar = new seekbar(this);     final int duration = mmediaplayer.getduration();     final int amoungtoupdate = duration / 100;     timer mtimer = new timer();     mtimer.schedule(new timertask() {          @override         public void run() {             runonuithread(new runnable() {                  @override                 public void run() {                     if (!(amoungtoupdate * mseelbar.getprogress() >= duration)) {                         int p = mseelbar.getprogress();                         p += 1;                         mseelbar.setprogress(p);                     }                 }             });         };     }, amoungtoupdate); 

and process should called when media player start playing. inside

mediaplayer.setonpreparedlistener(new onpreparedlistener(){      @override     public void onprepared(mediaplayer mp) {     **// call here** }); 

update

update 125 times in seconds not should do. please increase interval updating seekbar. adding after reading comments of nullpointer


Comments