26

是否有启动相机的意图,可以选择在 Android 上捕获图片和视频?

我已经使用 MediaStore.ACTION_VIDEO_CAPTURE 和 MediaStore.ACTION_IMAGE_CAPTURE 来捕获音频或视频,但我找不到可以在两者之间切换的 Intent,如本示例应用程序所示:

在此处输入图像描述

谢谢!

4

3 回答 3

9

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

1) 创建你自己的相机这个 repo 可能是一个好的开始,但这将是一个太多的努力。

2)使用选择器意图并传递图像和视频的意图,这将使您可以选择分别录制视频和相机的应用程序。在这你不能同时做这两件事,但可以根据你想做的事情选择应用程序,捕捉图像或录制视频。下面是对我有用的代码。

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);
于 2018-03-07T05:23:01.803 回答
7

我做到了:) 你可以通过以下方式做到这一点——

    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);

类似的例子在这里

快乐编码:)

于 2017-09-15T11:10:11.010 回答
6

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

Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
于 2013-06-14T10:14:24.513 回答