参见英文答案 > Get mp3 duration in android 5个
我正在进行媒体播放器项目,我想根据我正在播放的MP3文件的长度旋转图像,即当歌曲结束时图像应该停止旋转.
我想获得所选MP3文件的持续时间,以便我可以计时轮换.
我读了这个问题Get PCM data from an MP3 file in Android,但我看不出如何阅读歌曲的持续时间.我怎么能这样做 – 是否有任何函数或方法来获取文件的持续时间?
解决方法:
希望对你有帮助
MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
metaRetriever.setDataSource(filePath);
String out = "";
// get mp3 info
// convert duration to minute:seconds
String duration =
metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
Log.v("time", duration);
long dur = Long.parseLong(duration);
String seconds = String.valueOf((dur % 60000) / 1000);
Log.v("seconds", seconds);
String minutes = String.valueOf(dur / 60000);
out = minutes + ":" + seconds;
if (seconds.length() == 1) {
txtTime.setText("0" + minutes + ":0" + seconds);
}else {
txtTime.setText("0" + minutes + ":" + seconds);
}
Log.v("minutes", minutes);
// close object
metaRetriever.release();