当前位置:  开发笔记 > 编程语言 > 正文

Android - 视频文件中的缩略图

如何解决《Android-视频文件中的缩略图》经验,为你挑选了1个好方法。

我目前有一个应用程序,用户单击浮动操作按钮并选择一个视频文件,然后将该文件保存到另一个文件夹.我想显示所有视频的缩略图.我已经看过一个教程系列,它用MediaStore完成,但后来我无法设置uri的路径.

有人可以指点我正确的方向吗?

这是我的班级打开图库并将视频保存到不同的路径:

public class Activity extends AppCompatActivity {
    private static final int pick = 100;
    Uri videoUri;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            openGallery();
            }
        });
    }

    private void openGallery() {
        Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent, pick);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK && requestCode == pick) {
            try
            {
                Log.e("videopath","videopath");
                AssetFileDescriptor videoAsset = getContentResolver().openAssetFileDescriptor(data.getData(), "r");
                FileInputStream fis = videoAsset.createInputStream();
                File root=new File(Environment.getExternalStorageDirectory(),"MYFOLDER");

                if (!root.exists()) {
                    root.mkdirs();
                }

                File file;
                file=new File(root,"android_"+System.currentTimeMillis()+".mp4" );

                FileOutputStream fos = new FileOutputStream(file);

                byte[] buf = new byte[1024];
                int len;
                while ((len = fis.read(buf)) > 0) {
                    fos.write(buf, 0, len);
                }
                fis.close();
                fos.close();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            videoUri = data.getData();
        }
    }
  }

OBX.. 5

您可以ThumbnailUtils在Android中使用该类来实现此目的.

public static Bitmap createVideoThumbnail (String filePath, int kind)

此方法返回视频的位图.

第一个参数是文件路径,即要作为String传递的视频文件的位置.

第二个参数是您需要的位图类型,有两种类型:

MediaStore.Images.Thumbnails.MICRO_KIND 生成大小为96 x 96的缩略图

MediaStore.Images.Thumbnails.MINI_KIND 生成大小为512 x 384的缩略图.

例如:

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(filePath, Thumbnails.MINI_KIND);

以下是API文档以获取更多信息[此处].



1> OBX..:

您可以ThumbnailUtils在Android中使用该类来实现此目的.

public static Bitmap createVideoThumbnail (String filePath, int kind)

此方法返回视频的位图.

第一个参数是文件路径,即要作为String传递的视频文件的位置.

第二个参数是您需要的位图类型,有两种类型:

MediaStore.Images.Thumbnails.MICRO_KIND 生成大小为96 x 96的缩略图

MediaStore.Images.Thumbnails.MINI_KIND 生成大小为512 x 384的缩略图.

例如:

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(filePath, Thumbnails.MINI_KIND);

以下是API文档以获取更多信息[此处].

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有