1 需求
遍历一个文件夹,需要获取音视频的时长和视频的第一帧图像
2 关键代码实现
获取本地音视频的时长(这里计算出来的是秒为单位),如果文件不是音视频,下面的函数会发生异常,也就是返回0,我们除了通过文件头来判断这个文件是音视频之后,然后再获取这个文件的时长,如果下面的函数时长返回大于0,说明这个文件是音视频文件。
/*** get Local video and audio duration** @return*/public static int getLocalVideoDuration(String videoPath) {//时长(毫秒)int duration;try {MediaMetadataRetriever mmr = new MediaMetadataRetriever();mmr.setDataSource(videoPath);duration = Integer.parseInt(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION))/1000;} catch (Exception e) {e.printStackTrace();return 0;}return duration;}
然后我们如果发现文件的