//1.初始化 mMetadataRetriever = new MediaMetadataRetriever(); //2.设置视频源文件mMetadataRetriever.setDataSource(file.getAbsolutePath()); //3.获取视频的宽 String w = mMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH); //获取视频的高 String h = mMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT); //获取视频的时长,ms mMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); // 等等...一些其它属性,比如媒体类型(3gp,mp4) ,视频旋转角度 //4.释放资源,防止内存泄漏,养成好习惯 mMetadataRetrieve.release();
public Bitmap extractFrame(long timeMs) {
//第一个参数是传入时间,只能是us(微秒)
//OPTION_CLOSEST ,在给定的时间,检索最近一个帧,这个帧不一定是关键帧。
//OPTION_CLOSEST_SYNC 在给定的时间,检索最近一个同步与数据源相关联的的帧(关键帧)
//OPTION_NEXT_SYNC 在给定时间之后检索一个同步与数据源相关联的关键帧。
//OPTION_PREVIOUS_SYNC 在给定时间之前检索一个同步与数据源相关联的关键帧。
// Bitmap bitmap = mMetadataRetriever.getFrameAtTime(timeMs * 1000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC);
Bitmap bitmap = null;
for (long i = timeMs; i < fileLength; i += 1000) {
bitmap = mMetadataRetriever.getFrameAtTime(i * 1000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC);
if (bitmap != null) {
break;
}
}
return bitmap;
}
for (int i = 0; i < thumbnailsCount; i++) {
if (stop) {
metadataRetriever.release();
break;
}
long time = startPosition + interval * i;
if (i == thumbnailsCount - 1) {
if (interval > 1000) {
String path = extractFrame(metadataRetriever, endPosition - 800, OutPutFileDirPath);
sendAPic(path, endPosition - 800);
} else {
String path = extractFrame(metadataRetriever, endPosition, OutPutFileDirPath);
sendAPic(path, endPosition);
}
} else {
String path = extractFrame(metadataRetriever, time, OutPutFileDirPath);
sendAPic(path, time);
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有