2012-05-11 8 views
9

Uno puede usarCuál es la unidad de medida del tiempo de duración de los medios de comunicación en MediaMetadataRetriever

String MediaMetadataRetriver.extractMetadata(int key); 

con

key = MediaMetadataRetriver.METADATA_KEY_DURATION 

para extraer la duración de los medios.

Esta función devuelve una Cadena, pero no hay documentación sobre el formato o la unidad de medida que representa esta cadena. Supongo que es un número entero en ms, pero el resto de apis de MediaMetadataRetriever usa us.

¿Cuál es la unidad de duración? ¿Crees que la falta de especificación es intencional o un error?

+5

La unidad es millisecound –

Respuesta

12

ver este

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

Debido extractMetadata puede devolver un valor nulo que necesita para envolver esta llamada en un cheque:

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); 

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

Cuestiones relacionadas