【问题标题】:How to combine ACTION_IMAGE_CAPTURE and ACTION_VIDEO_CAPTURE together如何将 ACTION_IMAGE_CAPTURE 和 ACTION_VIDEO_CAPTURE 组合在一起
【发布时间】:2018-06-26 12:38:57
【问题描述】:

我需要同时致电Intent 获取图像和视频。 similar to this 似乎是不可能的。所以另一种方法是 createChooser() 。但我有点坚持下面的代码。

 Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
           takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, file.getAbsolutePath());
            Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
            takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, file.getAbsolutePath());
            Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
            Intent[] intentArray = new Intent[]{takePictureIntent};
            chooserIntent.putExtra(Intent.EXTRA_INTENT, takeVideoIntent);
            chooserIntent.putExtra(Intent.EXTRA_TITLE, "Choose an action");
            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
            startActivityForResult(chooserIntent, 1);

MediaStore.EXTRA_OUTPUT 不工作。从相机返回后文件为空。但是它确实打开了一个选择器,如下所示,但文件为空。

问题:-
1.如何结合这两个意图并提供单独的文件作为MediaStore.EXTRA_OUTPUT

2.众所周知,android中有数百个相机应用程序,这是打开此类意图的好方法(无论制造商和API级别如何,它都适用于所有设备)?或者我应该使用AlertDialog 单独打开每个操作的意图。

【问题讨论】:

    标签: android android-intent android-camera-intent


    【解决方案1】:

    试试下面的代码:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2011-05-07
      • 2011-07-22
      • 1970-01-01
      相关资源
      最近更新 更多