2014-01-05 57 views
0

我想从存储中获取所选音频文件的持续时间。到目前为止我所完成的是我得到了音频文件的名称。但我想获得mp3文件的持续时间。我怎样才能做到这一点?查看音频文件时,它们显示在列表视图中,每个文件的右侧是持续时间。我想获得持续时间字符串。但我不知道该怎么做。Android从存储中获取所选音频文件的持续时间

这是代码我工作:

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

你尝试getduration – user2511882

+0

@ user2511882没有,在那里我能得到持续? – Dunkey

回答

4

您可以使用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

+0

我会试试这个谢谢。 – Dunkey

+0

欢迎:)如果它适合您,请接受该解决方案;) –

相关问题