我想从存储中获取所选音频文件的持续时间.到目前为止我所取得的成就是我得到了音频文件的名称.但我想得到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); } } }
你有什么想法来获得持续时间吗?非常感谢帮助谢谢.
您可以使用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();
在android中获取mp3持续时间