cf4882b152
* feat: Add support for LiDAR, TrueDepth, External (USB) and Continuity Camera Devices (iOS 17) * Rename `devices` -> `physicalDevices` * fix: Comment out iOS 17 cameras for now * fix: Move `supportsDepthCapture` to `format` * fix: Fall back to `wide-angle-camera` for any unknown types * Update CameraPage.tsx * `descriptor` -> `physicalDeviceDescriptor` * Update CameraDevice.ts * Format * feat: Expose `userPreferredCameraDevice` Uses the new iOS 17 API where the user can prefer a default device, otherwise fall back to the first device of the available ones * fix: Expose as property * Add TODO comments * fix: Format code * fix: Compile below Swift 5.9 |
||
---|---|---|
.github | ||
docs | ||
package | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md |
Features
VisionCamera is a powerful and fast Camera component for React Native. It features:
- 📸 Photo and Video capture
- 📱 Customizable devices and multi-cameras ("fish-eye" zoom)
- 🎞️ Customizable resolutions and aspect-ratios (4k/8k images)
- ⏱️ Customizable FPS (30..240 FPS)
- 🧩 Frame Processors (JS worklets to run QR-Code scanning, facial recognition, AI object detection, realtime video chats, ...)
- 🔍 Smooth zooming (Reanimated)
- ⏯️ Fast pause and resume
- 🌓 HDR & Night modes
- ⚡ Highly efficient C++/GPU buffers
Install VisionCamera from npm:
yarn add react-native-vision-camera
cd ios && pod install
..and get started by setting up permissions!
Documentation
V3
You're looking at the V3 version of VisionCamera, which features a full rewrite on the Android codebase and a huge refactor on the iOS codebase. If you encounter issues on V3, you can also downgrade to V2, which is still partially supported.
Example
function App() {
const devices = useCameraDevices('wide-angle-camera')
const device = devices.back
if (device == null) return <LoadingView />
return (
<Camera
style={StyleSheet.absoluteFill}
device={device}
isActive={true}
/>
)
}
See the example app
Adopting at scale
VisionCamera is provided as is, I work on it in my free time.
If you're integrating VisionCamera in a production app, consider funding this project and contact me to receive premium enterprise support, help with issues, prioritize bugfixes, request features, help at integrating VisionCamera and/or Frame Processors, and more.
Socials
- 🐦 Follow me on Twitter for updates
- 📝 Check out my blog for examples and experiments
- 💬 Join the Margelo Community Discord for chatting about VisionCamera
- 💖 Sponsor me on GitHub to support my work
- 🍪 Buy me a Ko-Fi to support my work