在Android中指定录制视频的专辑

时间:2011-07-27 15:01:54

标签: android uri video-capture android-contentprovider mediastore

我正在尝试使用MediaStore.ACTION_VIDEO_CAPTURE意图在Android中录制视频。我可以在默认的库相册中录制视频,但我无法在其他任何地方存储。我试图使用intent参数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);

'导致'是1,所以行值实际上已更改,但它不在"我的应用视频"专辑一旦我打开它。

我也尝试了Android documentation中解释的不同解决方案,但任何Uri都是IllegalArgumentException(未知的URL文件)。我想念一个方便的方法,如 MediaStore.Images.Media.insertImage

你是如何处理这个问题的?

1 个答案:

答案 0 :(得分:0)

我有类似的问题,虽然我的代码分为两部分,一部分处理照片,另一部分处理视频,同一个流程和场景给出了两个不同的结果,下面的帖子解释了更多!

http://www.androidquestions.org/threads/618-Intent-doesn-t-keep-video-extras-after-capturing-the-video!?p=1761#post1761

如果这个问题有任何解决方案,我将感激不尽!