React Native 将捕获的图像和视频保存到我设备上的自定义文件夹中

Posted

技术标签:

【中文标题】React Native 将捕获的图像和视频保存到我设备上的自定义文件夹中【英文标题】:React Native Save captured images and video to custom folder on my device 【发布时间】:2020-07-01 02:35:14 【问题描述】:

我已尝试为我研究将捕获的图像或视频保存到设备上的自定义文件夹的正确答案,但没有找到合适的答案。我已经能够保存到我的 DCIM,但我不想将它们保存在那里,我想创建一个自定义文件夹来保存我从我的应用程序中捕获的图像或视频。我是本地人的新手,这是我的学习过程...

takePicture = async () => 
        if (this.camera) 
          if (Platform.OS === 'android') 
            await this.checkAndroidPermission();
          
            const options =  quality: 1 ;
            const data = await this.camera.takePictureAsync(options);
            //save photo
            CameraRoll.save(data.uri, 'photo').then(onfulfilled => 
                ToastAndroid.show(`VidApp Photos: $onfulfilled`, ToastAndroid.SHORT);
            ).catch(error => 
                ToastAndroid.show(`$error.message`, ToastAndroid.SHORT);
            );
        
    ;


    recordVideo = async () => 
      if (this.camera) 
          if (!this.state.recording)
              this.startRecording();
          else this.stopRecording();
      
  

  startRecording = async () => 
    this.setState( recording: true );
    this.countRecordTime = setInterval(() => this.setState( seconds: this.state.seconds + 1 ), 1000);
    const cameraConfig =  maxDuration: this.state.maxDuration ;
    const data = await this.camera.recordAsync(cameraConfig);
    this.setState( recording: false );
    CameraRoll.save(data.uri, 'video').then(onfulfilled => 
        ToastAndroid.show(`VidApp Videos: $onfulfilled`, ToastAndroid.SHORT)
    ).catch(error => ToastAndroid.show(`$error.message`, ToastAndroid.SHORT));


stopRecording = () => 
    this.camera.stopRecording();
    clearInterval(this.countRecordTime);
    this.setState( seconds: 0 );

【问题讨论】:

【参考方案1】:

你必须使用CameraRoll.save的相册参数

CameraRoll.save(data.uri, type:'photo',album:'CustomFolder');

来自文档

它允许指定您要将资产存储到的特定专辑 当提供参数专辑时。在 Android 上,如果没有提供专辑, 使用 DCIM 目录,否则使用 PICTURE 或 MOVIES 目录 取决于提供的类型。

【讨论】:

它仍然保存到 DCIM,而不是保存到 CustomFolder 你能试试 CameraRoll.save(data.uri, type:'photo',album:'CustomFolder'); ? 哦,是的...非常兴奋,它成功了,感谢 Guruparan。我不知道我是否应该创建一个新问题,或者我仍然应该在这里问这个问题......我仍然想用我的测试应用程序实现很多......我想将图像作为图库检索到我的应用程序中缩略图:我希望能够分享和删除图片...请在这里我仍然需要帮助。谢谢。 我已经更新了答案,希望你可以标记它,因为如果你创建一个新问题会更好:)

以上是关于React Native 将捕获的图像和视频保存到我设备上的自定义文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

将捕获的图像从相机保存到自定义文件夹

将视频保存到 CameraRoll React-Native

如何将捕获的图像与 react-native-camera 一起使用

React Native 录制视频并捕获 Speech to Text

React-native-android - 如何将图像保存到Android文件系统并在手机的“图库”中查看

使用 react-native-camera 捕获后向视频/图片添加水印