Android的 - 从URL显示一个视频缩略图 [英] Android - Display a video thumbnail from a URL

查看:1236
本文介绍了Android的 - 从URL显示一个视频缩略图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要显示基于一个网址进入我的的ListView 的ImageView 查看孩子的视频缩略图code>的项目,我发现这个<一个href=\"http://stackoverflow.com/questions/13743223/it-is-possible-to-display-a-video-thumbnail-from-a-url-on-android-4-and-above\">post但没有奏效。

结果

code

  thumb_image.setImageBitmap(新LoadVideoThumbnail()。执行(URLs.videos +/+ videos.get(位置).getId()+MP4)。得到( ));

的AsyncTask

 公共类LoadVideoThumbnail扩展的AsyncTask&LT;弦乐,对象,位图&GT; {        @覆盖
        保护位图doInBackground(字符串...的ObjectURL){
            //返回ThumbnailUtils.createVideoThumbnail(的ObjectURL [0],Thumbnails.MINI_KIND);
            返回ThumbnailUtils.extractThumbnail(ThumbnailUtils.createVideoThumbnail(的ObjectURL [0],Thumbnails.MINI_KIND),100,100);
        }        @覆盖
        保护无效onPostExecute(位图结果){
             //img.setImageBitmap(result);
        }    }


解决方案

@CommonsWare,

这是不是这样,对于在服务器的每个视频存储个人缩略图。但我们有一些库


  

fmmr.jar使用jniLibs


直接提供从服务器的URL缩略图用10秒。

借助样本$ C为缩略图$ C

  FFmpegMediaMetadataRetriever fmmr =新FFmpegMediaMetadataRetriever();
        尝试{
            fmmr.setDataSource(将videoPath);            位图B = fmmr.getFrameAtTime();            如果(B!= NULL){
                位图B2 = fmmr.getFrameAtTime(4000000,FFmpegMediaMetadataRetriever.OPTION_CLOSEST_SYNC);
                如果(B2!= NULL){
                    B = B2;
                }
            }            如果(B!= NULL){
                Log.i(缩略图,提取的帧);
                返回b;
            }其他{
                Log.e(缩略图,无法提取框架);
            }
        }赶上(抛出:IllegalArgumentException前){
            ex.printStackTrace();
        } {最后
            fmmr.release();
        }

I need to display a video thumbnail based to a URL into an ImageView view child of my ListView items, i have found this post but not worked.

Result

Code

        thumb_image.setImageBitmap(new LoadVideoThumbnail().execute(URLs.videos +"/"+videos.get(position).getId()+".mp4").get());

AsyncTask

public class LoadVideoThumbnail extends AsyncTask<String, Object, Bitmap>{

        @Override
        protected Bitmap doInBackground(String... objectURL) {
            //return ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND);
            return ThumbnailUtils.extractThumbnail(ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND), 100, 100);
        }

        @Override
        protected void onPostExecute(Bitmap result){
             //img.setImageBitmap(result);
        }

    }

解决方案

@CommonsWare,

This is not the case that for every video store individual thumbnail in server. but we have some library

fmmr.jar with using jniLibs

which directly provide the thumbnail from server url with in 10 second.

The sample code for Thumbnail.

FFmpegMediaMetadataRetriever fmmr = new FFmpegMediaMetadataRetriever();
        try {
            fmmr.setDataSource(videoPath);

            Bitmap b = fmmr.getFrameAtTime();

            if (b != null) {
                Bitmap b2 = fmmr.getFrameAtTime(4000000, FFmpegMediaMetadataRetriever.OPTION_CLOSEST_SYNC);
                if (b2 != null) {
                    b = b2;
                }
            }

            if (b != null) {
                Log.i("Thumbnail", "Extracted frame");
                return b;
            } else {
                Log.e("Thumbnail", "Failed to extract frame");
            }
        } catch (IllegalArgumentException ex) {
            ex.printStackTrace();
        } finally {
            fmmr.release();
        }

这篇关于Android的 - 从URL显示一个视频缩略图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆