Android意图捕获图像和视频?

dor*_*nad 23 android android-intent android-camera

是否有启动摄像头的Intent,可以选择在Android上捕获图片和视频?

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

在此输入图像描述

谢谢!

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

类似的例子在这里

快乐编码:)


小智 7

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

1)创建自己的相机这个回购可以是一个良好的开端但是这将是一个太多的努力.

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


Eld*_*ldo 5

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

Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
Run Code Online (Sandbox Code Playgroud)

  • 如何在ONactivity结果上检索捕获的图像或视频? (10认同)
  • Intent参数ACTION_VIDEO_CAPTURE和ACTION_IMAGE_CAPTURE似乎是专门设计用于启动相机,捕获媒体(分别是视频或图像)并返回的。这通常从startActivityForResult开始。使用INTENT_ACTION_VIDEO_CAMERA参数只是启动相机,不返回任何结果。我不认为这可以回答OP的问题。 (7认同)
  • 此意图不允许您检索捕获的内容 (4认同)