2012-05-11 23 views
9

Người ta có thể sử dụnglà gì đơn vị measurment cho thời gian phương tiện truyền thông trong MediaMetadataRetriever

String MediaMetadataRetriver.extractMetadata(int key); 

với

key = MediaMetadataRetriver.METADATA_KEY_DURATION 

để trích xuất trong suốt thời gian phương tiện truyền thông.

Hàm này trả về một chuỗi, nhưng không có tài liệu nào liên quan đến định dạng hoặc đơn vị đo lường mà chuỗi này đại diện. Tôi giả sử nó là một số nguyên trong ms, nhưng phần còn lại của apis MediaMetadataRetriever sử dụng chúng tôi.

Vậy đơn vị thời lượng là bao nhiêu? Bạn có nghĩ rằng việc thiếu đặc điểm kỹ thuật là cố ý hay lỗi?

+5

Đơn vị là millisecound –

Trả lời

12

Xem này

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

Vì extractMetadata có thể trở lại một null bạn cần phải quấn cuộc gọi này trong một tấm séc:

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

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

Các vấn đề liên quan