1、Video
对于视频,取第一帧作为缩略图,也就是怎样从filePath得到一个Bitmap对象。
private Bitmap createVideoThumbnail(String filePath) {
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setMode(MediaMetadataRetriever.MODE_CAPTURE_FRAME_ONLY);
retriever.setDataSource(filePath);
bitmap = retriever.captureFrame();
} catch(IllegalArgumentException ex) {
// Assume this is a corrupt video file
        } catch (RuntimeException ex) {
// Assume this is a corrupt video file.
        } finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
            }
}
return bitmap;
}Android提供了MediaMetadataRetriever,由JNI(media_jni)实现。
看得出MediaMetadataRetriever主要有两个功能:MODE_GET_METADATA_ONLY和MODE_CAPTURE_FRAME_ONLY
这里设mode为MODE_CAPTURE_FRAME_ONLY,调用captureFrame取得一帧。
另外还有两个方法可以用:
extractMetadata 提取文件信息,ARTIST、DATE、YEAR、DURATION、RATING、FRAME_RATE、VIDEO_FORMAT
和extractAlbumArt 提取专辑信息,这个下面的音乐文件可以用到。
2、Music
对于音乐,取得AlbumImage作为缩略图,还是用MediaMetadataRetriever
private Bitmap createAlbumThumbnail(String filePath) {
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setMode(MediaMetadataRetriever.MODE_GET_METADATA_ONLY);
retriever.setDataSource(filePath);
byte[] art = retriever.extractAlbumArt();
bitmap = BitmapFactory.decodeByteArray(art, 0, art.length);
} catch(IllegalArgumentException ex) {
} catch (RuntimeException ex) {
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
            }
}
return bitmap;
}
retriever.extractAlbumArt()得到的是byte数组,还需要一步用BitmapFactory编码得到Bitmap对象。
3、Image
图片就很简单了         Bitmap bm = null;
Options op = new Options();
op.inSampleSize = inSampleSize;
op.inJustDecodeBounds = false;
bm = BitmapFactory.decodeFile(mFile.getPath(), op);
复制代码能直接得到Bitmap对象,把图片缩小到合适大小就OK。
同样上面的Video和Music,retrive到Bitmap后也需要缩小处理。

android获取视频头一帧,music信息相关推荐

  1. Android获取视频的第一帧照片

    Android录完视频(视频)获取第一帧照片 1.应用场景 当你录完视频后.或者本来就有一部视频,在进行展示的时候需要展示封面,但是封面展示需要图片,这个时候就需要开始从视频里面获取第一帧图片. 2. ...

  2. 使用FFmpeg获取视频每一帧的信息

    FFmpeg给我提供了非常好的视频信息分析的办法,使用ffprobe对音视频流的结构的分析非常方便. 首先,可以通过ffprobe --help来查看一些详细的参数的意义 usage: ffprobe ...

  3. android 视频默认图片格式,Android获取视频文件某一帧并设置图片

    在项目中,有时候需要抓取视频文件的某一帧图像做为预览图片,那到底应该怎么获取这个图片呢? Android为我们提供了一个统一的接口用来获取多媒体文件的相关信息:MediaMetadataRetriev ...

  4. android 获取视频第一帧作为缩略图

    今天,简单讲讲android里如何获取一个视频文件的第一帧作为缩略图显示在界面上. 之前,我说个最近需要从服务器下载视频文件,但是下载后肯定需要显示视频的缩略图在界面上给用户看,于是想到显示视频的第一 ...

  5. java 取视频第一帧,java获取视频的第一帧

    //------------maven配置文件--------------- org.bytedeco javacv 0.8 /** * 获取指定视频的帧并保存为图片至指定目录 * @param vi ...

  6. php 获取视频首帧,PHP获取视频的第一帧与时长

    //获得视频文件的缩略图 function getVideoCover($file,$time,$name) { if(empty($time))$time = '1';//默认截取第一秒第一帧 $s ...

  7. Java代码实现上传视频获取视频某一帧作为截图封面(二)

    上一个文章讲了Java代码实现上传视频获取视频某一帧作为截图封面的一种方法,现在讲述第二种方法.为什么要在这里讲这种方法呢?第一.这种方法生成的图片占用的空间更小第二.这种方法可以获取很多信息 一.根 ...

  8. android 获取视频缩略图终极解决方案(ffmpeg)

    android 获取视频缩略图终极解决方案(ffmpeg) 参考文章: (1)android 获取视频缩略图终极解决方案(ffmpeg) (2)https://www.cnblogs.com/juka ...

  9. android获取手机sim卡信息,Android获取手机SIM卡运营商信息的方法

    本文实例讲述了Android获取手机SIM卡运营商信息的方法,对于Android程序设计有非常实用的价值.分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: /** * 获取SIM卡运营商 ...

最新文章

  1. NLP中关键字提取方法总结和概述
  2. Tomcat中出现“RFC 7230 and RFC 3986“错误的解决方法
  3. word中如何隐藏表格线框
  4. linux命令:userdel
  5. python 霍夫直线变换_OpenCV-Python 霍夫线变换 | 三十二
  6. [题解]RQNOJ PID85 三个袋子
  7. SELECT的学习以及在socket中的应用
  8. 十六进制表示_教资信息技术之:十进制(正数)转二进制、八进制、十六进制...
  9. python怎样在一行中捕获多个异常
  10. python抓取网站图片_利用python抓取网站图片
  11. 机器学习(西瓜书)读书难点参考资料
  12. 一点总结,手机应用开发前景
  13. VC2015 运行库安装错误 0x80240017 解决过程
  14. Edge(Linux 版)无法正常同步问题解决
  15. 计算机如何使用键盘复制粘贴,电脑复制粘贴快捷键,手把手教你电脑怎么用键盘复制粘贴...
  16. Web.15.三层架构之购物车项目02
  17. 校园网状态下通过智能插座为ipad实现远程智能充电
  18. 跟着廖雪峰学python 006
  19. 解决显存不足:Out of video memory trying to allocate a rendering resource
  20. 论文阅读--利用完全卷积和空间变换网络从部分二维观测中产生三维超声

热门文章

  1. [512大地震]今日图说:四川汶川地震涌现出的16个最牛
  2. 1.27 Watermelon
  3. NMEA GPRMC 格式图解,NMEA 工具的比较
  4. java图片去掉文字_java解出图片中的文字
  5. 计算机监控系统功能概述,物联网技术在计算机监控系统的应用
  6. [003] 嵌入式学习:创建工程模板——使用STM32CubeMX
  7. 在J1939中多帧数据如何发送,它是通过TP.CM_BAM和TP_DT报文发送
  8. 旅行商问题(travelling salesman problem, TSP) 解题报告
  9. 汉寿计算机职业中专,汉寿县职业中等专业学校2021年招生简章
  10. java 数组越界_JAVA 数组越界 怎么破