Zapisałem zestaw plików MP3 na mojej karcie SD. Teraz chcę odzyskać czas trwania w sekundach. Przeszedłem przez kilka linków i udało mi się znaleźć rozwiązanie tylko z SDK w wersji 10 przy użyciu klasy MediaMetadataRetriever. Ale moje wymagania dotyczą SDk w wersji 7. Czy jest jakiś sposób, aby sprawdzić czas trwania plików mp3. Przepraszam, jeśli jest to powtarzające się pytanie.

Wiem, że używanie getDuration() MediaPlayera rozwiązuje ten problem. Ale nie chcę tego używać.

Każda pomoc jest bardzo ceniona.

2
Andro Selva 14 luty 2012, 17:36

2 odpowiedzi

Najlepsza odpowiedź

Czy masz wystarczającą ilość danych, aby wysłać zapytanie do EXTERNAL_CONTENT_URI? Na przykład z tytułem możesz wykonać następujące czynności:

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));
3
Phillip Fitzsimmons 14 luty 2012, 18:02
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);
0
Zulfiqar 31 październik 2012, 21:04