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

集成react-native-vision-camera安卓端报错[session/camera-not-ready]求助

解决react-native-vision-camera Android端[session/camera-not-ready]错误

问题根源

这个错误的核心是Android相机组件初始化未完成就被激活——即使权限已通过,Android端相机硬件的初始化流程比iOS慢,直接设置isActive={true}会触发该报错。你的代码存在两个关键问题:

  1. 权限状态判断逻辑错误:Camera.getCameraPermissionStatus()返回的是权限枚举值(如'granted'),不是布尔值,直接赋值给cameraPerm会导致权限判断失效,可能在权限未真正授予时就渲染相机。
  2. 相机激活时机过早:未等待相机完成初始化就启动,忽略了Android端的初始化延迟。

修复步骤

1. 修正权限状态判断逻辑

修改checkPermissions函数,正确识别权限授予状态:

const checkPermissions = async () => {
  await Camera.requestCameraPermission();
  await Camera.requestMicrophonePermission();
  await requestPermission();

  const cameraPermissionStatus = await Camera.getCameraPermissionStatus();
  // 明确判断权限是否为授予状态
  setCameraPerm(cameraPermissionStatus === 'granted');
  const microphonePermissionStatus = await Camera.getMicrophonePermissionStatus();
};

2. 监听相机初始化回调,控制激活时机

添加状态变量跟踪相机初始化状态,通过onInitialized回调确认相机就绪后再激活:

// 新增状态:标记相机是否完成初始化
const [isCameraInitialized, setIsCameraInitialized] = useState(false);

// 修改Camera组件配置
<Camera
  style={StyleSheet.absoluteFill}
  device={device}
  // 仅当权限通过且相机初始化完成时激活
  isActive={cameraPerm && isCameraInitialized}
  video={true}
  audio={true}
  ref={camera}
  // 相机初始化完成后触发该回调
  onInitialized={() => setIsCameraInitialized(true)}
/>

3. 优化渲染流程,添加初始化等待状态

在renderCameraScreen中补充初始化等待逻辑,避免用户看到空白或错误:

if (!cameraPerm){
  return(
    <View>
      <Text style={{...FONTS.Title, textAlign: 'center', marginTop: 100}}>
        请在设置中启用视频权限以访问相机
      </Text>
    </View>
  )
}

// 相机初始化完成前显示加载提示
if (!isCameraInitialized) {
  return (
    <View style={{backgroundColor: 'black', justifyContent: 'center', alignItems: 'center', height: maxHeight * 0.70}}>
      <Text style={{color: 'white'}}>相机加载中...</Text>
    </View>
  );
}

关于onInitialized()的说明

onInitialized是react-native-vision-camera提供的相机生命周期回调,当相机硬件完成初始化、会话配置成功后会自动触发。你需要将其作为Camera组件的props传入,用来确认相机已准备就绪,此时再开启isActive就能彻底避免camera-not-ready错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:50:35