Как получить оставшиеся песни и общее время воспроизведения с медиаплеера?

1

друзья, я не знаю, как получить оставшиеся песни и общую длительность от медиаплеера. В своем коде я хочу получить общую длительность и оставшуюся длительность песен и показать в текстовом виде с правильным форматированием времени:

 updateseekbar=new Thread(){

                     @Override public  void run(){
                  int totalduration=mediaPlayer.getDuration();
                  int currnetpostion=0;




                  while (currnetpostion<totalduration){
                      try{
                     sleep(500);
                     currnetpostion=mediaPlayer.getCurrentPosition();
                     seekBar.setProgress(currnetpostion);



                      }catch (Exception e) {
                      e.printStackTrace();
                      }

                  }
            }
        };

Что мне нужно сделать, чтобы этого добиться?

Теги:
android-mediaplayer

2 ответа

1
Лучший ответ

Вы можете добиться этого, вычтя текущую продолжительность из общей продолжительности. В вашем коде я вижу, что у вас есть как общая, так и текущая продолжительность.

remainingDuration  = totalduration -   currnetpostion=mediaPlayer.getCurrentPosition();

Может быть, работа вашего дела

1

Как я вижу в вашем коде....

totalduration = общее время песни;

но если вы хотите текущую позицию медиаплеера. Вы должны поместить свой код в runnable и обновлять текущую позицию каждую секунду....

 final Handler handler=new Handler();
    handler.post(new Runnable() {
        @Override
        public void run() {
            int duration=mediaplayer.getcurrentPosition();
            //and update your seekbar from handler
            //change your int to time format...
            String time = String.format("%02d:%02d ", TimeUnit.MILLISECONDS.toMinutes(duration), TimeUnit.MILLISECONDS.toSeconds(duration) -
                            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration)));
             updateseekbar();
            handler.postDelayed(this,1000);
        }
    });

если вы не получаете его, спросите это снова

Ещё вопросы

Сообщество Overcoder
Наверх
Меню