我正在尝试使用 MediaStore.ACTION_VIDEO_CAPTURE 意图在 Android 中录制视频。我可以将视频录制到默认库相册中,但无法存储在其他任何地方。我尝试使用意图参数EXTRA_MEDIA_ALBUM:
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_MEDIA_ALBUM, "My app videos");
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 0);
我还尝试在视频本身之前在 MediaStore 中插入视频行。
ContentValues videoValues = new ContentValues();
videoValues.put(MediaStore.Video.Media.TITLE, "My app video at" + System.currentTimeMillis());
videoValues.put(MediaStore.Video.Media.ALBUM, "My app videos");
Uri videoUri= getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoValues);
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 0);
而且我还尝试在插入视频后修改元数据,以便在打开图库应用程序后查看它是否在不同的相册中。
protected void onActivityResult(final int requestCode, final int resultCode, final Intent dataIntent) {
...
Uri contentUri = dataIntent.getData();
ContentValues values = new ContentValues();
values.put(MediaStore.Video.Media.ALBUM, "My app videos");
int result = getContentResolver().update(contentUri, values, null, null);
'result' 为 1,因此行值实际上已更改,但打开后它不在“我的应用视频”相册中。
我还尝试了Android 文档中解释的不同解决方案,但使用任何 Uri IllegalArgumentException(未知 URL 文件)。我想念一个方便的方法,比如 MediaStore.Images.Media.insertImage
你是如何处理这个问题的?