1

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であるため、行の値は実際に変更されますが、開くと「Myappvideos」アルバムには表示されません。

また、 Androidのドキュメントで説明されているさまざまな解決策を試しましたが、UriにはIllegalArgumentException(不明なURLファイル)があります。MediaStore.Images.Media.insertImageのような便利なメソッドが恋しい

この問題にどのように対処しましたか?

4

1 に答える 1

0

私は同様の問題を抱えていますが、私のコードは写真を扱う部分とビデオを扱う部分の 2 つの部分に分かれていますが、同じプロセスとシナリオで 2 つの異なる結果が得られます。次のスレッドで詳しく説明しています。

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

この問題に解決策があれば、私は感謝します!

于 2012-05-21T12:25:55.613 に答える