我目前有一个应用程序,用户单击浮动操作按钮并选择一个视频文件,然后将该文件保存到另一个文件夹.我想显示所有视频的缩略图.我已经看过一个教程系列,它用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文档以获取更多信息[此处].
您可以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文档以获取更多信息[此处].