6

Intentビデオの録画と写真の撮影に次の s を使用していますが、Motorola Droid 2.2 ではカメラのIntent保存オプションが失敗し、何も保存されず、カムコーダーのIntentキャンセルによってアプリケーションがクラッシュします。

明示的Intentにファイルを渡し、結果「ok」を返した後、ファイルを使用します。つまり、ユーザーがインテントで保存/挿入オプションを押したときです。カムコーダーで保存しても問題ありません。

カメラ

 Intent intent2 = new Intent("android.media.action.IMAGE_CAPTURE");
 imgUri = Uri.fromFile(photofile);
 intent2.putExtra(MediaStore.EXTRA_OUTPUT, imgUri);
 startActivityForResult(intent2, 1);

カムコーダー

 Intent i = new Intent("android.media.action.VIDEO_CAPTURE");
 i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(videofile));
 i.putExtra(android.provider.MediaStore.EXTRA_VIDEO_QUALITY, 0);
 i.putExtra("android.intent.extra.durationLimit", 60);
 startActivityForResult(i, 2);

注意: 記録されたビデオは HTC ERIS で再生できません。

4

1 に答える 1

1

やむを得ない場合はandroid.provider.MediaStore.EXTRA_OUTPUT、そのようなコンテンツ プロバイダー経由で URI を準備してみてください。

context.getContentResolver().insert(android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentValues);

そのためには、最初に正しいコンテンツ値を準備する必要があります (MediaColumns.DISPLAY_NAME、MediaColumns.MIME_TYPE などを設定します)。

ただし、最善の方法は、システムがビデオに与える独自の URI とユーザー URI を指定しないことです。

于 2013-01-27T09:41:44.203 に答える