显示歌曲在Android中播放的时间

sur*_*dra 6 android media-player

我正在尝试使用给定列表中的MediaPlayer播放一首歌.我希望包括歌曲从开始到结束歌曲的持续时间.如何添加时间以及如何将该时间从0:00更新到该歌曲的结尾

key*_*ser 19

您可以使用getCurrentPosition()以毫秒为单位提供当前位置的方法.

您还可以使用该方法getDuration()获取歌曲的全长.

您可以使用单独的线程来更新计时器.


Mic*_*cer 10

为了显示播放时间,我使用了TimerTimerTask,它TextView tv每1000ms 更新一次.请注意,不使用tv.post(Runnable操作)在Text View中设置文本不会阻止UI线程并可能导致问题.

if (player != null) {
    player.start();
    timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (player != null && player.isPlaying()) {
                        tv.post(new Runnable() {
                            @Override
                            public void run() {
                                tv.setText(player.getCurrentPosition());
                            }
                        });
                    } else {
                        timer.cancel();
                        timer.purge();
                    }
                }
            });
        }
    }, 0, 1000);
}
Run Code Online (Sandbox Code Playgroud)