如何在android sdk< 10中检索MP3文件持续时间(秒)

时间:2012-02-14 13:36:14

标签: android

我已经在我的SD卡中存储了一组MP3文件。现在我想在几秒钟内检索其持续时间。我经历了几个链接,我只能使用MediaMetadataRetriever类从SDK版本10中找到解决方案。但我的要求是SDK版本7.有没有办法找出mp3文件的持续时间。如果这是一个重复的问题,我很抱歉。

我知道使用MediaPlayer的getDuration()解决了这个问题。但我不想用这个。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您是否有足够的数据来查询EXTERNAL_CONTENT_URI?例如,使用标题,您可以执行以下操作:

Cursor cursor= getContentResolver().query(android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,android.provider.MediaStore.Audio.Media.TITLE+"=='Hallelujah'",null,null);
cursor.moveToFirst();
int duration=cursor.getInt(cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DURATION));

答案 1 :(得分:0)

This will Give the mp3 file duration and file size
String mediaURL = "http://downloads.hussainiat.com/nauhey/arsalan_haider/vol_2011_-_12/01_tum_jawab_e_zulm_dogay_-_arsalan_haider_2011_-_2012.mp3";
    MediaPlayer mp = new MediaPlayer();
    mp.setDataSource(mediaURL);
    mp.prepare();
    System.out.println("Duration in ms     " + mp.getDuration());
    URL myUrl = new URL(mediaURL);
    URLConnection urlConnection = myUrl.openConnection();
    urlConnection.connect();
    int file_size = urlConnection.getContentLength();
    System.out.println("FileSize in Bytes    "+ file_size);