2012-05-11 24 views
9

można użyćCo to jednostka miary dla czasu trwania medialnej w MediaMetadataRetriever

String MediaMetadataRetriver.extractMetadata(int key); 

z

key = MediaMetadataRetriver.METADATA_KEY_DURATION 

wyodrębnić trwania mediów.

Ta funkcja zwraca ciąg znaków, ale nie ma dokumentacji dotyczącej formatu lub jednostki miary reprezentowanej przez ten ciąg. Założę się, że jest to liczba całkowita w ms, ale reszta api MediaMetadataRetriever używa nas.

Jaka jest jednostka czasu trwania? Czy uważasz, że brak specyfikacji jest zamierzony lub błąd?

+5

Urządzenie jest millisecound –

Odpowiedz

12

Zobacz ten

long durationMs = Long.parseLong(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)); 
        long duration = durationMs/1000; 
        long h = duration/3600; 
        long m = (duration - h * 3600)/60; 
        long s = duration - (h * 3600 + m * 60); 
        String durationValue; 
        if (h == 0) { 
         durationValue = String.format(
         activity.getString(R.string.details_ms), m, s); 
         } else { 
          durationValue = String.format(
          activity.getString(R.string.details_hms), h, m, s); 
         } 
        } 
1

Ponieważ extractMetadata może zwrócić NULL trzeba owinąć to wezwanie w czeku:

int duration = 0; 
String dur = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); 
if (dur != null) { 
    duration = Integer.parseInt(dur); 
} 
mDuration = duration; 
long h = duration/3600; 
long m = (duration - h * 3600)/60; 
long s = duration - (h * 3600 + m * 60); 

(od http://www.codota.com/android/scenarios/52fcbd47da0af79604fb4a67/android.media.MediaMetadataRetriever?tag=dragonfly)

Powiązane problemy