Android从存储中获取所选音频文件的持续时间

时间:2014-01-05 14:25:49

标签: android

我想从存储中获取所选音频文件的持续时间。到目前为止我所取得的成就是我得到了音频文件的名称。但我想得到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);

        }   

    }
}

你有什么想法来获得持续时间吗?感谢非常感谢帮助。

1 个答案:

答案 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();

Get mp3 duration in android