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

时间:2011-05-19 14:51:47

标签: android media-player

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

3 个答案:

答案 0 :(得分:18)

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

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

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

答案 1 :(得分:10)

为了显示播放时间,我使用了TimerTimerTask,每1000毫秒更新一次TextView tv。请注意,不使用tv.post(Runnable action)在文本视图中设置文本不会阻止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);
}

答案 2 :(得分:-1)

this解决方案一个机会。根据帖子,它只适用于Android 1.5,但这应该指向正确的方向。问题在于没有记录的方式(我知道)获取当前正在播放的曲目信息,虽然我没有真正使用Android SDK的音频部分,因为我的项目需要集中在其他地方。