Укажите альбом записанного видео в Android

Я пытаюсь записать видео на Android, используя намерение MediaStore.ACTION_VIDEO_CAPTURE. Я могу записать видео в альбом библиотеки по умолчанию, но не могу сохранить его где-либо еще. Я попытался использовать параметр намерения 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. но с любым Uri IllegalArgumentException (неизвестный файл URL). Мне не хватает удобного метода, такого как MediaStore.Images.Media.insertImage

Как вы справились с этой проблемой?


person Diego Gómez Olvera    schedule 27.07.2011    source источник
comment
обязательно ли использовать намерение для записи видео для вас? разве вы не должны использовать MediaRecorder?   -  person Abhi    schedule 27.07.2011
comment
Я хотел бы сохранить информацию о видео в MediaStore и использовать собственное приложение камеры, поэтому использование MediaRecorder будет последним вариантом. Он «почти» работает с MediaStore.ACTION_VIDEO_CAPTURE, и мне просто нужно указать конкретный альбом для моего приложения. Это должен быть способ сделать это, потому что некоторые приложения, такие как LiveProfile, делают это.   -  person Diego Gómez Olvera    schedule 27.07.2011
comment
можно сохранить записанное видео на SD-карту с помощью MediaRecorder   -  person Abhi    schedule 27.07.2011


Ответы (1)


У меня похожая проблема, хотя мой код состоит из двух частей: одна работает с фотографиями, а другая — с видео, один и тот же процесс и сценарий дают два разных результата, в следующем потоке объясняется больше!

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

Буду признателен, если эта проблема имеет какие-либо решения!

person Yazid Erman    schedule 21.05.2012