//创建媒体数据寻找类
MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
//找到视频源
mediaMetadataRetriever.setDataSource(Environment.getExternalStorageDirectory() + "/dianying .mp4");
//根据微妙找到对应帧的bitmap
//特别注意是微妙
bitMap = mediaMetadataRetriever.getFrameAtTime(mMediaPlayer.getCurrentPosition()*1000, MediaMetadataRetriever.OPTION_CLOSEST);



本文讨论的是获取视频在某个时间点的图像, 而非屏幕截图. 如果要获取屏幕截图的话直接(电源键+音量下) 2. 获取视频截图 2.1 MediaMetadataRetriever MediaMetadataRetriever从名称上看可以获取视频的Metadata信息, 此外还可以获取视频的截图, 其中抽取视频的缩略图就是采用此函数实现的. 2.2 使用方法 采用MediaMetadatRetriever.getFrameAtTime方法获取视频的该帧图像. public Bitmap getFrameAtTime (long timeUs) public Bitmap getFrameAtTime (long timeUs, int option) 需要注意的是: 该时间点的单位是微秒,普通时间的单位都是毫秒; option :  OPTION_CLOSEST: 获取离timeUs最近的一帧图像. 此函数获取的帧是Sync Frame, 由于在timeUs此时间点不一定恰好有一个Sync Frame, 所以会有一定的误差. 获取Sync Frame时 有3中情况: (1) 在timeUs处恰好有一个Sync Frame (2) 获取timeUs前一个Sync Frame (3) 获取timeUs后一个Sync Fram OPTION_PREVIOUS_SYNC: (1) or (2) OPTION_NEXT_SYNC: (1) or (3) OPTION_CLOSEST_SYNC: 获取离timeUs最近的一个Sync Frame
												

SurfaceView播放视频的截图相关推荐

  1. react native 实现surfaceview播放视频

    本文在react native的js页面中调用android层写的surfaceview播放视频 1.我们搭建好rn环境后,创建rn项目并运行到设备上(本文省略),在项目的目录下 /android/a ...

  2. Android MediaPlayer+SurfaceView播放视频 (异常处理)

    MediaPlayer,顾名思义是用于媒体文件播放的组件.Android中MediaPlayer通常与SurfaceView一起使用,当然也可以和其他控件诸如TextureView.SurfaceTe ...

  3. Android使用SurfaceView播放视频,可以自适应尺寸。

    需求很简单,就是普通的播放视频,使用android源生的MediaPlayer播放. 下面是完整代码和布局,黑色区域可以自己调整大小. import android.content.pm.Activi ...

  4. Android SurfaceView 播放视频 根据视频尺寸自适应播放

    问题:我是用surfaceView+MediaPlay 播放本地上传的视频 但是由于视频尺寸不一致 有些视频播放会变形   (写个博客记录下开发时碰到的问题) 解决方案:视频尺寸会自动填充surfac ...

  5. android 视频播放滤镜,用openGL ES+MediaPlayer 渲染播放视频+滤镜效果

    之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频,今天再给大家来一篇openGL ES+Me ...

  6. Android--使用VideoView播放视频

    VideoView VideoView,用于播放一段视频媒体,它继承了SurfaceView,位于"android.widget.VideoView",是一个视频控件. 既然是播放 ...

  7. 用surfaceview播放FFmpeg解码视屏

    关于FFmpeg解码请看第一篇教程:FFmpeg解码 下载转码库libyuv 一般我们用surfaceview播放视频都是才用RGBA格式等播放的,但我们解码之后的视频可能是h.264等等 所以我们这 ...

  8. android播放器删除视频教程,列表条目 的播放视频按钮、删除条目按钮的点击事件监听接口的实...

    1.课程的初忠与目的 问题:通过上课发现,在学习完成Android基本组件后,还会迷茫于如何完成一个完整的应用. 本实践课程通过开发完成一个"畅听音乐"的小项目,实现从基本组件的学 ...

  9. php 怎么视频截图,视频如何截图 如何截图视频画面

    往往我们用暴风影音播放视频然后截图画面再粘贴到qq聊天中,或放到ps中,会发现视频截图一片黑.不能正常截图视频画面,原因很简单,需要设置一下电脑.用暴风影音播放器播放视频如何截屏视频画面. 温馨提示: ...

最新文章

  1. 如何设计API返回码(错误码)?
  2. 如果想成为一名顶尖的前端,这份书单你一定要收藏!
  3. 港中大教授研发DeepID人脸识别技术 准确率超99%
  4. linux怎么命令设置网络连接,Linux网络操作命令
  5. boot spring 怎么执行hql_彻底透析SpringBoot jar可执行原理
  6. springcloud——eureka小错误Caused by: java.net.UnknownHostException: eureka7003.com
  7. PL-VIO论文阅读
  8. JVM参数调优详细过程
  9. eclipse汉化完成常见问题的解决方案
  10. 简单实现select多选功能
  11. Java实现 LeetCode 289 生命游戏
  12. unity设置手机横屏方法和相关问题
  13. MySQL open_tables和opened_tables
  14. 电脑登录宽带怎么自动连接服务器地址,宽带自动连接怎么设置
  15. Oracle Database-基础及查询部分
  16. SYN包含的常用TCP选项
  17. VRP_SA-模拟退火
  18. FFmpeg源码分析:avcodec_register_all()注册编解码器
  19. 「津津乐道播客」#231. 串台:跟『新世相』聊聊被刷屏的『沈老师』
  20. 联想小新java_联想小新700 i7 完美efi 黑果 mac 10.14

热门文章

  1. 基于模型参考自适应控制(MRAC)的自动驾驶方向盘(油门)控制方法
  2. Rosbridge系列2:初识Rosbridge--利用rosbridge实现网页控制小乌龟移动
  3. 【大话设计模式】——代理模式
  4. PAT乙级1060:爱丁顿数 (25)
  5. Androidの网络通信之TDP
  6. iOS上使用自己定义ttf字体
  7. 头雁启新实践队深入实践,宣传智慧社区理念
  8. 拔牙伤己600——LNMP环境搭建(Kali、宝塔)
  9. ipad app store 下载 app的时候,他会先拦住你 让你用指纹,然后没有用密码的选项,如果你指纹是错误的,才会显示可以让你用密码
  10. 一个DBA的雄心壮志