📅  最后修改于: 2023-12-03 15:29:20.764000             🧑  作者: Mango
Android MediaPlayer 是 Android 操作系统提供的一种用于播放音频和视频的类。在使用 MediaPlayer 时,有时需要获取音频/视频的播放进度来进行一些操作。本文将介绍如何使用 Android MediaPlayer 获取音频/视频的播放进度。
MediaPlayer 是 Android 提供的一个用于播放音频和视频的类,可以直接从本地文件或网络地址中播放媒体文件。MediaPlayer 可以实现基本的播放控制,如开始、暂停、停止等。同时也可以获取音频/视频的一些属性,如播放进度、总时长等。
获取 MediaPlayer 的播放进度,可以通过调用 MediaPlayer 的 getCurrentPosition() 方法来获取当前播放的位置,返回值的单位是毫秒。例如:
int currentPosition = mediaPlayer.getCurrentPosition();
同时,通过调用 MediaPlayer 的 getDuration() 方法获取媒体文件的总时长,返回值的单位也是毫秒。例如:
int duration = mediaPlayer.getDuration();
获取了当前播放的位置和媒体文件的总时长,就可以计算出当前播放的进度百分比了。例如:
int progress = (int)(((float) currentPosition / duration) * 100);
通过上面的方式可以获取当前播放的进度,但是如果想要实时获取当前播放进度呢?这里介绍一种定时器实现的方式:
private Timer mTimer;
mTimer.schedule(new TimerTask() {
@Override
public void run() {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
int currentPosition = mediaPlayer.getCurrentPosition();
int duration = mediaPlayer.getDuration();
int progress = (int)(((float) currentPosition / duration) * 100);
// 更新UI界面
updateProgress(progress);
}
}
}, 0, 1000);
以上代码会每隔一秒钟获取一次当前播放进度,并且调用 updateProgress 方法更新 UI 界面。
本文介绍了如何使用 Android MediaPlayer 获取音频/视频的播放进度,包括如何获取当前播放进度、获取媒体文件的总时长和计算当前播放的进度百分比等。同时也介绍了一种定时器实现的方式实时获取当前播放进度。