将图像、音频和视频保存到 SD 卡

Posted

技术标签:

【中文标题】将图像、音频和视频保存到 SD 卡【英文标题】:Saving image, audio, and video to sd card 【发布时间】:2012-03-08 09:07:53 【问题描述】:

我无法理解如何将文件保存到 SD 卡。对于我的相机类,我拍了一张照片,而不是创建一个新目录来保存它。它创建了文件夹,但图像不在文件夹中?请帮忙。

if (items[which].equals("Picture")) 

                            Intent cameraIntent = new Intent(
                                    MediaStore.ACTION_IMAGE_CAPTURE);
                            startActivityForResult(cameraIntent,
                                    PICTURE_ACTIVITY);

                            File imagesFolder = new File(Environment
                                    .getExternalStorageDirectory(),
                                    "SeccyPhotos");
                            imagesFolder.mkdirs(); // <----
                            File image = new File(imagesFolder, "image_001.jpg");
                            Uri uriSavedImage = Uri.fromFile(image);
                            cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                                    uriSavedImage);
                        

我打电话给相机,然后在你拍照后它应该保存到文件夹中。

编辑: 视频会和相机一样吗?

        Intent cameraIntent = new Intent(
                                MediaStore.ACTION_VIDEO_CAPTURE);
                        startActivityForResult(cameraIntent,
                                PICTURE_ACTIVITY);

                        File videosFolder = new File(Environment
                                .getExternalStorageDirectory(),
                                "cangryVideos");
                        videosFolder.mkdirs(); // <----
                        File video = new File(videosFolder, "Video_001.3gp");
                        Uri uriSavedvideo = Uri.fromFile(video);
                        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                                uriSavedvideo);
                        startActivityForResult(cameraIntent,
                                PICTURE_ACTIVITY);

【问题讨论】:

【参考方案1】:

在将图像文件 URI 设置为 cameraIntent 之前,您正在调用 startActivityForResult(cameraIntent, PICTURE_ACTIVITY);

你的代码应该是:

if (items[which].equals("Picture")) 
   Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

   File imagesFolder = new File(Environment.getExternalStorageDirectory(),
        "SecExPhotos");
   imagesFolder.mkdirs(); // <----
   File image = new File(imagesFolder, "image_001.jpg");
   Uri uriSavedImage = Uri.fromFile(image);
   cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,uriSavedImage);
   startActivityForResult(cameraIntent,PICTURE_ACTIVITY);

这应该可以解决您的问题。

【讨论】:

视频会是一个类似的概念吗? 不知道。直到现在还没有使用视频。如果您还没有,我建议您继续尝试。

以上是关于将图像、音频和视频保存到 SD 卡的主要内容,如果未能解决你的问题,请参考以下文章

使用 Fresco 时如何将图像保存到 SD 卡?

将叠加图像保存到 SD 卡

从android寻呼机将图像保存到sd卡

如何将图像正确保存到 SD 卡?

如何将可绘制资源中的图像保存到 SD 卡?

自动将视频文件保存到 Android SD 卡