在Android上,是否有一个意图(Intent)可以启动相机,并提供拍摄照片和视频的选项?
我曾经使用过MediaStore.ACTION_VIDEO_CAPTURE和MediaStore.ACTION_IMAGE_CAPTURE来捕捉音频或视频,但是我找不到一种Intent可以切换两者之间的选项,就像这个示例应用程序中一样:
谢谢!
在Android上,是否有一个意图(Intent)可以启动相机,并提供拍摄照片和视频的选项?
我曾经使用过MediaStore.ACTION_VIDEO_CAPTURE和MediaStore.ACTION_IMAGE_CAPTURE来捕捉音频或视频,但是我找不到一种Intent可以切换两者之间的选项,就像这个示例应用程序中一样:
谢谢!
无法使用相同的意图捕捉图像和视频,您的选项是:
1)创建自己的相机。 这个repo可以作为一个很好的开始,但需要花费大量精力。
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);
我成功了 :) 你可以通过以下方法做到 --
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);
类似的例子可以在这里找到。
祝你编码愉快 :)
Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
MediaStore.INTENT_ACTION_VIDEO_CAMERA
也可以被使用。 - Nizam