我在我的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录制视频时,必须返回视频路径,因为它在捕获图像时返回。
实际行为
录制视频后,我们单击“确定”,它会显示[错误:用户取消了图像选择]
重现步骤
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);
}
}
使用 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"/>
如果您使用的 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" />