如何创建视频 url 表单服务器的缩略图 [英] How to create thumbnail of video url form server

查看:25
本文介绍了如何创建视频 url 表单服务器的缩略图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何制作url视频表单服务器的图片/缩略图

我试了不行(不显示缩略图)

String String url = "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4";位图拇指 = ThumbnailUtils.createVideoThumbnail(url,MediaStore.Images.Thumbnails.MINI_KIND);Glide.with(context).load(thumb).asBitmap()/*.override(convertDpToPx(100), convertDpToPx(100))*/.placeholder(R.drawable.camera).override(200, 200).diskCacheStrategy(DiskCacheStrategy.ALL).into(new BitmapImageViewTarget(img_view) {protected void setResource(位图资源){RoundedBitmapDrawable circleBitmapDrawable =RoundedBitmapDrawableFactory.create(context.getResources(), resource);//circularBitmapDrawable.setCircular(true);img_view.setImageDrawable(circularBitmapDrawable);}});

<块引用>

我通过 answer1 爱上它!

但是缩略图出现了一些问题,它的颜色变化很奇怪.

示例

解决方案

Try this Create new AsyncTask like this

public class DownloadImage extends AsyncTask{ImageView bmImage;公共下载图片(ImageView bmImage){this.bmImage = (ImageView) bmImage;}受保护的位图 doInBackground(String... urls) {位图 myBitmap = null;MediaMetadataRetriever mMRetriever = null;尝试 {mMRetriever = new MediaMetadataRetriever();如果 (Build.VERSION.SDK_INT >= 14)mMRetriever.setDataSource(urls[0], new HashMap());别的mMRetriever.setDataSource(urls[0]);myBitmap = mMRetriever.getFrameAtTime();} 捕获(异常 e){e.printStackTrace();} 最后 {如果(mMRetriever != null){mMRetriever.release();}}返回我的位图;}protected void onPostExecute(位图结果){bmImage.setImageBitmap(result);}}

比这样调用AsyncTask

 new DownloadImage(YourImageView).execute("Your URL");

编辑

或者你也可以使用 Glide从 url 创建视频缩略图

 RequestOptions requestOptions = new RequestOptions();requestOptions.placeholder(R.drawable.placeholder_card_view);requestOptions.error(R.drawable.placeholder_card_view);Glide.with(getContext()).load(路径).apply(requestOptions).thumbnail(Glide.with(getContext()).load(path)).into(ivVideoThumbnail);

How to create image/thumbnails of url video form server

and I try is not work (not show thumbnails)

String  String url = "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4";

     Bitmap thumb = ThumbnailUtils.createVideoThumbnail(url,MediaStore.Images.Thumbnails.MINI_KIND);

    Glide.with(context).load(thumb).asBitmap()
    /*.override(convertDpToPx(100), convertDpToPx(100))*/
    .placeholder(R.drawable.camera)
    .override(200, 200)
    .diskCacheStrategy(DiskCacheStrategy.ALL)
    .into(new BitmapImageViewTarget(img_view) {
     protected void setResource(Bitmap resource) {
    RoundedBitmapDrawable circularBitmapDrawable =
    RoundedBitmapDrawableFactory.create(context.getResources(), resource);
    //circularBitmapDrawable.setCircular(true);
    img_view.setImageDrawable(circularBitmapDrawable);
       }
    });

I get slove it by answer1 !

but it get some problem about thumbnails ,it's change color is stange.

example

解决方案

Try this Create new AsyncTask like this

public class DownloadImage extends AsyncTask<String, Void, Bitmap> {
    ImageView bmImage;

    public DownloadImage(ImageView bmImage) {
        this.bmImage = (ImageView ) bmImage;
    }

    protected Bitmap doInBackground(String... urls) {
        Bitmap myBitmap = null;
        MediaMetadataRetriever mMRetriever = null;
        try {
            mMRetriever = new MediaMetadataRetriever();
            if (Build.VERSION.SDK_INT >= 14)
                mMRetriever.setDataSource(urls[0], new HashMap<String, String>());
            else
                mMRetriever.setDataSource(urls[0]);
            myBitmap = mMRetriever.getFrameAtTime();
        } catch (Exception e) {
            e.printStackTrace();


        } finally {
            if (mMRetriever != null) {
                mMRetriever.release();
            }
        }
        return myBitmap;
    }

    protected void onPostExecute(Bitmap result) {
        bmImage.setImageBitmap(result);
    }
}

Than call this AsyncTask like this

   new DownloadImage(YourImageView).execute("Your URL");

EDIT

Or you can also use Glide to create thumbnail of video from url

 RequestOptions requestOptions = new RequestOptions();
 requestOptions.placeholder(R.drawable.placeholder_card_view);
 requestOptions.error(R.drawable.placeholder_card_view);


  Glide.with(getContext())
       .load(path)
       .apply(requestOptions)
       .thumbnail(Glide.with(getContext()).load(path))
       .into(ivVideoThumbnail);

这篇关于如何创建视频 url 表单服务器的缩略图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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