安卓截取视频第一帧的方法

来源:互联网 发布:网络摄像头转模拟信号 编辑:程序博客网 时间:2024/05/20 03:06

视频app大多是需要有一张相关视频的图片做封面展示的。下面是可以直接从视频的url取到视频的第一帧图片的方法:

Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(context,url  //url的参数        , MediaStore.Video.Thumbnails.MINI_KIND);

这样取到的是一个bitmap的对象,可以直接将图片的view对象设置进去。

不过这个方法只适用于放在单页中,如果是做list的话是很卡的,原因是bitmap在取到图片后市需要占用很大内存的,有人说那一个页面只有一两张图片也卡啊,那是因为在截取视频图片时候需要解析视频,这一步很耗内存的,下面给出的代码是很容易解决使用list展示图片内存消耗的问题的:

在activity中:

mVideoFrameImageLoader = new VideoFrameImageLoader(getActivity(), listView,list);   //第三个参数为你的视频地址,走完这里后边跟上setAdapter就ok

在apapter的getview中:

if(convertView==null){    if (!LibsChecker.checkVitamioLibs(context))        return null;    convertView= LayoutInflater.from(context).inflate(R.layout.video_item,null);    //初始化显示数据    mVideoFrameImageLoader.initList();    viewHolder=new ViewHolder(convertView);    convertView.setTag(viewHolder);}else {    viewHolder= (ViewHolder) convertView.getTag();}
Bitmap bitmap=mVideoFrameImageLoader.showCacheBitmap(VideoFrameImageLoader.formatVideoUrl(mImageUrl));//里面的参数是视频地址viewHolder.pic.setImageBitmap(bitmap);
就这几行代码就搞定了,其中的两个类给给大家下载的地址(完整的代码,直接复制就能用)。

下载地址:http://download.csdn.net/detail/qq_34698126/9659787



0 0