Android 获取视频缩略图

使用FFmpegMediaMetadataRetriever  github:https://github.com/wseemann/FFmpegMediaMetadataRetriever

删掉没用的库其实没多大,删掉mips和x86文件夹

代码:

private Bitmap getThumbnai(String path){
        FFmpegMediaMetadataRetriever fmmr = new FFmpegMediaMetadataRetriever();
        Bitmap bitmap = null;
        try {
          fmmr.setDataSource(path);
          bitmap = fmmr.getFrameAtTime();
          if (bitmap != null) {
            Bitmap b2 = fmmr
                .getFrameAtTime(
                    4000000,
                    FFmpegMediaMetadataRetriever.OPTION_CLOSEST_SYNC);
            if (b2 != null) {
              bitmap = b2;
            }
            if (bitmap.getWidth() > 640) {// 如果图片宽度规格超过640px,则进行压缩
              bitmap = ThumbnailUtils.extractThumbnail(bitmap,
                  640, 480,
                  ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
            }
          }
        } catch (IllegalArgumentException ex) {
          ex.printStackTrace();
        } finally {
          fmmr.release();
        }
        return bitmap;
    }

在掉用的时候异步调一下

new AsyncTask<Void, Void, Bitmap>(){

            @Override
            protected Bitmap doInBackground(Void... arg0) {
                Bitmap b = MainActivity.this.getThumbnai(path);
                return b;
            }

            @Override
            protected void onPostExecute(Bitmap b) {
                if(b!=null){
                    Log.d("doubi", "b!=null");
                    image.setImageBitmap(b);
                    bar.setVisibility(View.GONE);
                    image.setVisibility(View.VISIBLE);
                    play.setVisibility(View.VISIBLE);
                }
            }
        }.execute();

~~先记录再次,有时间再细研究

时间: 2024-08-28 10:38:42

Android 获取视频缩略图的相关文章

Android -- 获取视频第一帧缩略图

干货 从API 8开始,新增了一个类: android.media.ThumbnailUtils这个类提供了3个静态方法一个用来获取视频第一帧得到的Bitmap,2个对图片进行缩略处理. public static Bitmap createVideoThumbnail (String filePath, int kind) 第一个参数是视频文件的路径,第二个参数是指定图片的大小,有两种选择Thumbnails.MINI_KIND与Thumbnails.MICRO_KIND. 第一种文档上说大小

Android得到视频缩略图

视频缩略图,可以通过接口类 MediaMetadataRetriever 来实现 具体可以看代码片段 public Bitmap getVideoThumbnail(String filePath) { Bitmap bitmap = null; MediaMetadataRetriever retriever = new MediaMetadataRetriever(); try { retriever.setDataSource(filePath); bitmap = retriever.g

获取视频缩略图之AVAssetImageGenerator

将之前的获取视频帧的方法回顾总结一下: 方式一:获取相关帧集 AVURLAsset *urlSet = [[AVURLAsset alloc]initWithURL:url options:nil]; AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc]initWithAsset:urlSet]; generator.appliesPreferredTrackTransform = YES; NSLog(@"gener

Android 获取SDCard上图片和视频的缩略图

获取图片缩略图和视频缩略图的方法: Java代码: import java.io.File; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.ThumbnailUtils; import android.os.Bundle; import android.os.Environment; import an

Android之使用ThumbnailUtils类来获取视频第一帧缩略图

一.首先,来介绍ThumbnailUtils类,此类位于android.media包下,此类有一个公有的无参构造函数,有三个静态的公有方法,一个用来获取视频第一帧得到的Bitmap,另外两个方法用来对图片进行缩略处理. 1.无参的构造函数:ThumbnailUtils() 2.三个静态的公有方法: (1).创建一个视频缩略图的方法: public static Bitmap createVideoThumbnail(String filePath, int kind) 第一个参数为视频文件的

Android 下获取视频和图片的缩略图

获取视频缩略图: ThumbnailUtils方式获取 /** * 获取视频的缩略图 必须在2.2及以上版本使用,因为其中使用了ThumbnailUtils这个类  * 先通过ThumbnailUtils来创建一个视频的缩略图,然后再利用ThumbnailUtils来生成指定大小的缩略图. * 如果想要的缩略图的宽和高都小于MICRO_KIND,则类型要使用MICRO_KIND作为kind的值,这样会节省内存. * @param videoPath 视频的路径 * @param width 指定

Android之使用MediaMetadataRetriever类获取视频第一帧

一.首先,来介绍一下MediaMetadataRetriever类,此类位于android.media包下,这里,先附上可查看此类的API地址:MediaMetadataRetriever类.大家能够自行查看. 1.MediaMetadataRetriever类概述:MediaMetadataRetriever class provides a unified interface for retrieving frame and meta data from an input media fil

Windows下使用ffmpeg与java实现截取视频缩略图

[ffmpeg.exe可执行文件获取]: 网上搜索后得到编译好的ffmpeg文件,下载地址:http://download.csdn.net/source/453719 [安装]: 将下载的文件解压,如:D:\ffmpeg,一共三个文件,分别是:ffmpeg.exe.ffplay.exe.pthreadGC2.dll.我们用到的应该是ffmpeg.exe. [实现获取视频缩略图的两种方式]: 1.调用批处理文件: 批处理文件(如:ffmpeg.bat),内容:D:/ffmpeg/ffmpeg.e

Android必知必会-获取视频文件的截图、缩略图

背景 公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下. 代码实现 /** * 获取视频文件截图 * * @param path 视频文件的路径 * @return Bitmap 返回获取的Bitmap */ public static Bitmap getVideoThumb(String path) { MediaMetadataRetriever media = new Me