[android] get duration with file path

오디오 파일에서 재생 시간을 가져와야 하는데, MediaPlayer에서 prepare 하고 그랬었는데, 좋은 방법이 있었구나 ;;;

 

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(filePath);
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
return Long.parseLong( time ); // millisecond

 

apache commons 의 DateFormatUtils를 쓴다면

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(filePath);
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long millisecond = Long.parseLong(time);
return DateFormatUtils.format(millisecond, "HH:mm:ss");