从react-native-image-crop-picker录制视频在android 13 - Tab(三星Galaxy Tab A8)中不起作用

问题描述 投票:0回答:2

我在我的react-native应用程序中使用react-native-image-crop-picker并从Android中的相机录制视频它正在返回[错误:用户取消了图像选择]

注意: 它在 Android 13 和 14 手机上运行良好。但它在 Tab 中出现错误 - Samsung Galaxy Tab A8 (Android 13)。

反应本机图像作物选择器

使用的版本

react-native-image-crop-picker v^0.40.2

反应原生 v0.72.0

反应v18.2.0

安卓v13

平台 - Android

预期行为

当我们使用ImagePicker.openCamera录制视频时,必须返回视频路径,因为它在捕获图像时返回。

实际行为

录制视频后,我们单击“确定”,它会显示[错误:用户取消了图像选择]

重现步骤

  1. 打开相机。
  2. 录制视频并单击“确定”。
  3. 然后我们必须获取录制的视频路径,但它返回错误[错误:用户取消了图像选择]。

AndroidManifest.xml。

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>

示例代码

recordVideo = async() => {
  try {
    const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.CAMERA,
      {
        title: "App Camera Permission",
        message:"App needs access to your camera ",
        buttonNeutral: "Ask Me Later",
        buttonNegative: "Cancel",
        buttonPositive: "OK"
      }
    );
    if (granted === PermissionsAndroid.RESULTS.GRANTED) {
      ImagePicker.openCamera({
        mediaType:'video'
      })
        .then((image) => {
          console.log(" Image ", image)
        })
        .catch((error) => {
          if (error && error.code === 'E_PICKER_CANCELLED') {
            return false;
          }
        })
    } else {
      console.log("Camera permission denied");
    }
  } catch (err) {
    console.warn(err);
  }
}
android react-native react-native-image-crop-picker
2个回答
1
投票

使用 npm uninstall react-native-image-crop-picker 卸载并再次使用 npm i react-native-image-crop-picker 安装,不要忘记添加到 android/app/src/main/AndroidManifest.xml。

<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/> 

0
投票

请按照 Android 安装说明的最后一步进行操作:

如果您使用的 SDK 版本 >= 33,请将以下内容添加到 app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>

[可选] 如果您想在项目中使用相机选择器,请将以下内容添加到 app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.CAMERA"/>

[可选]如果你想使用前置摄像头,还可以将以下内容添加到app/src/main/AndroidManifest.xml

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
© www.soinside.com 2019 - 2024. All rights reserved.