我想从存储中获取所选音频文件的持续时间。到目前为止我所取得的成就是我得到了音频文件的名称。但我想得到mp3文件的持续时间。我怎样才能做到这一点?查看音频文件时,它们显示在列表视图中,每个文件的右侧是持续时间。我想获得持续时间字符串。但我不知道该怎么做。
这是我正在处理的代码:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_AUDIO)
{
System.out.println("SELECT_AUDIO");
Uri selectedAudioUri = data.getData();
uploadFilePath = getPath(selectedAudioUri);
System.out.println("SELECT_AUDIO Path : " + uploadFilePath);
etSongTitle.setText(uploadFilePath);
}
}
}
你有什么想法来获得持续时间吗?感谢非常感谢帮助。
答案 0 :(得分:5)
您可以使用MediaMetadataRetriever获取歌曲的持续时间。将METADATA_KEY_DURATION与extractMetadata()函数结合使用。
// load data file
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);
// close object
metaRetriever.release();