2012-02-10 2 views
1

내 응용 프로그램은 파일 크기, MIME 형식과 함께 sdcard의 미디어 (오디오 및 비디오) 파일 목록을 보여줍니다. 이제 모든 목록 항목에 미디어 파일의 총 재생 시간을 추가하려고합니다. 내가 비디오를 재생하지 않기 때문에 내가 videoview.getDuration을 사용할 수 없습니다 0이되지는 반환하면 나는미디어 파일의 길이를 확인하는 방법

String[] proj = { MediaStore.Video.VideoColumns.DURATION }; 
Cursor cursor = managedQuery(contentUri, proj, null, null, null); 
int column_index 
    = cursor.getColumnIndexOrThrow(MediaStore.Video.VideoColumns.DURATION); 

하지만 MediaStore 반환 미디어 해본 경우에만 정확한 시간을 다음 코드를 사용하여 시간을 가져 오는 시도. 위의 코드에서 실수를 저 지르거나 다른 방법으로 을 가져 오지 않으면 먼저을 재생하지 않고도 도움을 청합니다.

답변

2

MediaMetadataRetriever를 사용하여 파일에서 재생 시간을 읽을 수 있어야합니다. 하지만이 클래스를 사용하려면 프로젝트가 최소한 API 레벨 10 (Android 2.3.3) 이상이어야합니다.

+0

데니스에게 감사드립니다.이 수업을 살펴 ​​보겠습니다. 결과로이 스레드를 업데이트합니다. – sku

+0

Dennis에게 감사드립니다. MediaMetaDataRetriever를 사용하여 비디오 파일의 재생 시간을 가져올 수있었습니다. 내 응용 프로그램은 API 레벨 10 이상으로 설계되어 있으므로이 API를 사용하면 편리합니다. – sku

+0

다행히도 도움이 될 수 있으며 응용 프로그램의 장치 호환성이 엉망이되지 않았다는 사실을 알고 기쁩니다. –

관련 문제