我正在尝试使用给定列表中的MediaPlayer播放一首歌。我希望包括歌曲从开始到结束歌曲的持续时间。如何添加时间以及如何将该时间从0:00更新到该歌曲的结尾
答案 0 :(得分:18)
您可以使用方法getCurrentPosition()
,它以毫秒为单位为您提供当前位置。
您还可以使用getDuration()
方法获取歌曲的全长。
您可以使用单独的线程来更新计时器。
答案 1 :(得分:10)
为了显示播放时间,我使用了Timer和TimerTask,每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的音频部分,因为我的项目需要集中在其他地方。