Android视频录制,相机意图

Byt*_*ode 6 android android-intent android-camera

我使用以下Intents来录制视频和拍照,但在Motorola Droid 2.2中,相机Intent保存选项失败,即没有保存,并且camcoder Intent取消会崩溃我的应用程序.

Intent我明确传递文件并在它返回结果"ok"之后我使用该文件,即当用户按下intent中的save/insert选项时:在camcoder中保存没问题,只取消摄像机中的casues崩溃.

相机

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

摄录一体机

 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);
Run Code Online (Sandbox Code Playgroud)

注意:录制的视频无法使用HTC ERIS播放

Dmi*_*kov 1

如果您无法避免使用,android.provider.MediaStore.EXTRA_OUTPUT请尝试通过内容提供者准备 URI

context.getContentResolver().insert(android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentValues);
Run Code Online (Sandbox Code Playgroud)

为此,您应该首先准备正确的内容值(设置 MediaColumns.DISPLAY_NAME、MediaColumns.MIME_TYPE 等)。

但最好的方法是不要指定系统将为您的视频提供的您自己的 URI 和用户 URI。