2012-05-11 33 views
9

एक में मीडिया अवधि के लिए माप की इकाई हैक्या MediaMetadataRetriever

key = MediaMetadataRetriver.METADATA_KEY_DURATION 

साथ

String MediaMetadataRetriver.extractMetadata(int key); 

का उपयोग मीडिया अवधि को निकालने के लिए कर सकते हैं।

यह फ़ंक्शन एक स्ट्रिंग देता है, लेकिन इस स्ट्रिंग का प्रतिनिधित्व करने वाले माप के प्रारूप या इकाई के संबंध में कोई दस्तावेज़ीकरण नहीं है। मुझे लगता है कि यह एमएस में एक पूर्णांक है, लेकिन शेष मीडियामैटाडाटा रीट्रिवर का एपिस हमें का उपयोग करता है।

तो अवधि के लिए इकाई क्या है? क्या आपको लगता है कि विनिर्देश की कमी जानबूझकर या बग है?

+5

इकाई millisecound है –

उत्तर

12

देखें इस

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

क्योंकि extractMetadata एक अशक्त आप एक जांच में इस कॉल रैप करने के लिए की जरूरत लौट सकते हैं:

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

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

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^