我有一个简单的 react native 应用程序(Android),并试图在闪光灯打开的情况下拍照. 如果将闪光灯设置为"关闭",效果会非常好,但当我将闪光灯设置为"打开"时,闪光灯就会打开,但没有人拍照,因为它总是超时:
拍摄照片时出错:[capture/timed-out:[capture/timed-out]图像捕获因超时而中止.]
我使用的是react 式本地视觉摄像机.它既不能在我的物理设备上运行,也不能在模拟设备上运行.
我就是不知道问题出在哪.
以下是代码:
import React, {useRef} from 'react';
import { View, Button } from 'react-native';
import {Camera, useCameraDevice, useCameraPermission, useCameraFormat} from 'react-native-vision-camera';
function CameraScreen(){
const camera = useRef(null);
const device = useCameraDevice('back');
// Handle requesting permissions ...
const takePhoto = async () => {
let noCameraAvailable = !camera.current;
if (noCameraAvailable) {
console.log("No camera available");
return;
}
try {
const photo = await camera.current.takePhoto({
// Flash turns on but no photo is taken due to timeout,
// if off however it works
flash: 'on',
});
console.log("Photo: ", photo);
} catch (error) {
console.error("Error taking photo: ", error);
}
}
return (
<View style={styles.cameraLayoutContainer}>
<Camera
style={styles.childrenContainer}
device={device}
isActive={true}
ref={camera}
photo={true}
/>
<Button title="Take photo" onPress={takePhoto} />
</View>
);
}
const styles = {
cameraLayoutContainer: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
childrenContainer: {
position: 'absolute',
width: '100%',
height: '100%',
},
}
export default CameraScreen;