Android意图捕获图像和视频?

时间:2013-05-14 20:01:01

标签: android android-intent android-camera

是否有用于启动相机的Intent,其中包含在Android上捕获图片和视频的选项?

我已经使用MediaStore.ACTION_VIDEO_CAPTURE和MediaStore.ACTION_IMAGE_CAPTURE来捕获音频或视频,但我找不到可以在两者之间切换的Intent,就像在这个示例app中一样:

enter image description here

谢谢!

3 个答案:

答案 0 :(得分:7)

无法使用相同的意图捕获图像和视频,您的选项是

1)创建自己的相机this repo can be a good start但这将是一项太多的努力。

2)使用Chooser Intent并传递图像和视频的意图,这样您就可以选择分别录制视频和摄像机的应用程序。在这种情况下,您无法同时执行这两项操作,但可以根据您的操作选择应用程序,捕获图像或录制视频。以下是适用于我的代码。

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
Intent chooserIntent = Intent.createChooser(takePictureIntent, "Capture Image or Video");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takeVideoIntent});
startActivityForResult(chooserIntent, CAPTURE_MEDIA_RESULT_CODE);

答案 1 :(得分:4)

我可以使用以下代码捕获图像和视频。

Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);

答案 2 :(得分:3)

我实现了它:) 您可以通过以下方式完成 -

    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
            contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
            contentSelectionIntent.setType("*/*");
    intentArray = new Intent[]{takePictureIntent,takeVideoIntent};
    chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
    chooserIntent.putExtra(Intent.EXTRA_TITLE, "Choose an action");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
    startActivityForResult(chooserIntent, 1);

类似示例here

快乐编码:)