MediaMetadataRetriever根据指定时间截取帧
来源:互联网 发布:数据有效性wps2016 编辑:程序博客网 时间:2024/06/10 20:13
MediaMetadataRetriever根据指定时间截取帧
2017.10.26
[摘要:使用MediaMetadataRetriever获取指定时间点的帧,并保存到图库中。当我需要实现这个功能时,第一时间是从百度查,但是查的有好多坑,有些不明白。希望这篇文章对大家方便使用,对自己以后方便再次使用。]
按照惯例先上代码
mediaMetadataRetriever = new MediaMetadataRetriever(); try { //根据url获取缩略图 mediaMetadataRetriever.setDataSource(VideoUrl, new HashMap()); // 取得视频的长度(单位为毫秒) String time = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); // 获取指定时间点的图片 Bitmap bitmap = mediaMetadataRetriever.getFrameAtTime(timeMs*1000,MediaMetadataRetriever.OPTION_CLOSEST); // 保存到图库中 MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "title", "description"); } catch (Exception e) { e.printStackTrace(); } finally { // 日常释放资源 mediaMetadataRetriever.release(); }
获取指定时间帧的关键代码为:
Bitmap bitmap = mediaMetadataRetriever.getFrameAtTime(timeMs * 1000, MediaMetadataRetriever.OPTION_CLOSEST);
public Bitmap getFrameAtTime(long timeUs, int option)
第一个参数:指点时间,只能是us(微秒)
第二个参数:
- OPTION_CLOSEST 在给定的时间,检索最近一个帧,这个帧不一定是关键帧。
- OPTION_CLOSEST_SYNC 在给定的时间,检索最近一个同步与数据源相关联的的帧(关键帧)。
- OPTION_NEXT_SYNC 在给定时间之后检索一个同步与数据源相关联的关键帧。
- OPTION_PREVIOUS_SYNC 顾名思义,同上
这里为了提取我们想要的帧,不使用关键帧,所以用 OPTION_CLOSEST .
MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "title", "description");
解释下第一个参数:当前应用的 ContentResolver实例;剩下几个参数看名字理解
阅读全文
1 0
- MediaMetadataRetriever根据指定时间截取帧
- MediaMetadataRetriever 的使用,视频截取一帧
- Android MediaMetadataRetriever 从视频中截取某一帧图片
- 根据指定时间获取时间
- MediaMetadataRetriever
- Android 获取mp4文件中任意时间点的帧图片(MediaMetadataRetriever )
- C# 根据需要对字符串进行指定长度的截取
- SQL 根据指定字符截取字符串Split函数
- 根据指定字符长度截取字符串(包含中英文)
- sql 根据指定字符截取前面几个字符
- Android开发:对VA文件根据时间点截取关键帧并转化为Bitmap
- 根据指定的格式验证日期时间
- MTK 根据指定时间隐藏显示菜单
- oracle根据当前日期截取一周时间_hanCSDN_20130503
- 根据指定时间获取前一周的时间
- 根据本地/服务器时间获取指定时区时间 new Date指定时区时间
- 用 MediaMetadataRetriever 获取VideoView当前帧
- MediaMetadataRetriever获取视频第一帧失败
- Beyond Compare如何设置对齐方式的方法
- MFC打包生成可安装文件
- Android不透明度16进制值
- Jboss7发布项目
- 如何杀死linux-zombie僵尸进程
- MediaMetadataRetriever根据指定时间截取帧
- Eclipse+SDK+ADT Android开发环境搭建注意问题
- 欢迎使用CSDN-markdown编辑器
- commons-pool对象池实现原理及使用(二)
- 阻止点击事件冒泡,不让父级元素的点击事件响应
- 【Codeforces418D】Big Problems for Organizers
- LeetCode 68 Text Justification
- 获取电脑日期时间代码段
- Windows 无法启动 VMware Authorization Service 服务