为了账号安全,请及时绑定邮箱和手机立即绑定

如何从媒体播放器获取剩余歌曲和总持续时间?

如何从媒体播放器获取剩余歌曲和总持续时间?

潇湘沐 2022-08-17 17:18:39
朋友们,我不知道如何从媒体播放器中获取剩余的歌曲和总持续时间。在我的代码中,我想获取歌曲的总持续时间和剩余持续时间,并以正确的时间格式显示在文本视图中: 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();                      }                  }            }        };为了实现这一目标,我需要做些什么?
查看完整描述

2 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

正如我在你的代码中看到的...


总持续时间=歌曲的总时间;


但是如果你想媒体播放器的当前位置。你必须把你的代码放在可运行的范围内,并在每秒更新当前位置。


 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);

        }

    });

如果你没有得到它,请再次询问


查看完整回答
反对 回复 2022-08-17
?
萧十郎

TA贡献1815条经验 获得超13个赞

您可以通过从总持续时间中减去当前持续时间来实现此目的,在您的代码中,我可以看到您同时具有“总”和“当前持续时间”。

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

可能是工作你的案例


查看完整回答
反对 回复 2022-08-17
  • 2 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信