Expo <Camera> 组件无法在移动设备上的 Web 上运行

Expo <Camera> component does not work on the Web on mobile

我正在使用此基本代码通过 Expo Camera 组件访问相机。

它可以在计算机上运行,​​但是当我在 iPhone/iPad 上打开它时,它显示我是空的 space(尽管它要求权限并显示 camera in use 符号。我尝试了两个 Safari和 Chrome。我使用 https

import { Camera } from 'expo-camera';

export default function Add({ navigation }){

  const [cameraPermission, setCameraPermission] = useState(null);
  const [camera, setCamera] = useState(null);


  const permisionFunction = async () => {
    // here is how you can get the camera permission
    const cameraPermission = await Camera.requestCameraPermissionsAsync();

    setCameraPermission(cameraPermission.status === 'granted');

    
    if (
      cameraPermission.status !== 'granted'
    ) {
      alert('Permission for media access needed.');
    }
  };

  useEffect(() => {
    permisionFunction();
  }, []);

  return (
    <View >
        <Camera
          ref={(ref) => setCamera(ref)}
        />
     </View>);
}

知道是什么原因造成的吗?

我找到了问题线程 here

问题似乎出在 Camera.requestCameraPermissionsAsync() 没有正确关闭摄像头,因此后续尝试使用摄像头都失败了。 (这是我的猜测,我没有调试过代码)。

一旦我禁用了 Camera.requestCameraPermissionsAsync() 调用,代码就可以工作了。