You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-native-vision-camera设置flash为'on'时无法拍照问题求助

React Native Vision Camera 闪光灯拍照超时问题解决

针对你遇到的开启闪光灯拍照超时错误,可尝试以下几种解决方案:

1. 筛选支持闪光灯的相机格式

部分相机格式可能不支持闪光灯功能,强制使用会导致拍照超时。通过useCameraFormat筛选支持闪光灯的格式:

function CameraScreen(){
    const camera = useRef(null);
    const device = useCameraDevice('back');
    // 筛选支持闪光灯的格式
    const format = useCameraFormat(device, [
        { flash: 'available' }
    ]);

    // ... 其余代码

    return (
        <View style={styles.cameraLayoutContainer}>
            <Camera
                style={styles.childrenContainer}
                device={device}
                isActive={true}
                ref={camera}
                photo={true}
                format={format} // 添加格式参数
            />
            <Button title="Take photo" onPress={takePhoto} />
        </View>
    );
}

2. 提前开启闪光灯

在拍照前先预激活闪光灯,给设备足够的准备时间,避免拍照时临时开启导致超时:

const takePhoto = async () => {
    let noCameraAvailable = !camera.current;
    if (noCameraAvailable) {
        console.log("No camera available");
        return;
    }
    try {
        // 拍照前先开启闪光灯
        await camera.current.setFlashMode('on');
        // 短暂延迟,确保闪光灯就绪
        await new Promise(resolve => setTimeout(resolve, 500));
        
        const photo = await camera.current.takePhoto({
            flash: 'on',
        });
        console.log("Photo: ", photo);
        // 拍照后可关闭闪光灯
        await camera.current.setFlashMode('off');
    } catch (error) {
        console.error("Error taking photo: ", error);
        // 出错后也关闭闪光灯
        if (camera.current) await camera.current.setFlashMode('off');
    }
}

3. 增加拍照超时时间

默认的拍照超时时间可能不足以支持闪光灯启动,手动设置更长的超时值:

const photo = await camera.current.takePhoto({
    flash: 'on',
    timeout: 5000 // 设置为5秒超时
});

4. 确认权限配置

确保AndroidManifest.xml中已正确添加相机及闪光灯相关权限:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.flash" />

内容的提问来源于stack exchange,提问作者Pascal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:07:40