我已经在我的SD卡中存储了一组MP3文件。现在我想在几秒钟内检索其持续时间。我经历了几个链接,我只能使用MediaMetadataRetriever
类从SDK版本10中找到解决方案。但我的要求是SDK版本7.有没有办法找出mp3文件的持续时间。如果这是一个重复的问题,我很抱歉。
我知道使用MediaPlayer的getDuration()
解决了这个问题。但我不想用这个。
非常感谢任何帮助。
答案 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);