react-native-vision-camera/package/example
Marc Rousavy cd0b413706
feat: New Core/ library (#1975)
Moves everything Camera related into `core/` / `Core/` so that it is better encapsulated from React Native.

Benefits:

1. Code is much better organized. Should be easier for collaborators now, and cleaner codebase for me.
2. Locking is fully atomically as you can now only configure the session through a lock/Mutex which is batch-overridable
    * On iOS, this makes Camera startup time **MUCH** faster, I measured speedups from **1.5 seconds** to only **240 milliseconds** since we only lock/commit once! 🚀 
    * On Android, this fixes a few out-of-sync/concurrency issues like "Capture Request contains unconfigured Input/Output Surface!" since it is now a single lock-operation! 💪 
3. It is easier to integrate VisionCamera outside of React Native (e.g. Native iOS Apps, NativeScript, Flutter, etc)

With this PR, VisionCamera V3 is up to **7x** faster than V2
2023-10-13 18:33:20 +02:00
..
android fix: Use minSdkVersion of 26 again 2023-10-05 10:56:30 +02:00
ios feat: New Core/ library (#1975) 2023-10-13 18:33:20 +02:00
src feat: New Core/ library (#1975) 2023-10-13 18:33:20 +02:00
.eslintrc.js chore: Remove semicolons (#1846) 2023-09-26 11:39:17 +02:00
app.json chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
babel.config.js chore: Remove semicolons (#1846) 2023-09-26 11:39:17 +02:00
clean.sh chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
index.js chore: Remove semicolons (#1846) 2023-09-26 11:39:17 +02:00
metro.config.js chore: Remove semicolons (#1846) 2023-09-26 11:39:17 +02:00
package.json feat: Add "Camera Devices" screen to Example (#1927) 2023-10-05 14:52:03 +02:00
README.md Add Image to example 2023-09-01 19:52:08 +02:00
tsconfig.json chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
yarn.lock feat: Add "Camera Devices" screen to Example (#1927) 2023-10-05 14:52:03 +02:00

Vision Camera playground

Overview

This is a demo application featuring some of the many features of the Vision Camera:

  • Photo capture
  • Video capture
  • Flipping device (back camera <-> front camera)
  • Device filtering (ultra-wide-angle, wide-angle, telephoto, or even combined virtual multi-cameras)
  • Format filtering (targeting 60 FPS, best capture size, best matching aspect ratio, etc.)
  • Zooming using react-native-gesture-handler and react-native-reanimated
  • Smoothly switching between constituent camera devices (see demo on my Twitter)
  • HDR mode
  • Night mode
  • Flash for photo capture
  • Flash for video capture
  • Activating/Pausing the Camera but keeping it "warm"
  • Using the Example Frame Processor Plugin

Get started

To try the playground out for yourself, run the following commands:

git clone https://github.com/mrousavy/react-native-vision-camera
cd react-native-vision-camera
yarn bootstrap

iOS

  1. Open the example/ios/VisionCameraExample.xcworkspace file with Xcode
  2. Change signing configuration to your developer account
  3. Select your device in the devices drop-down
  4. Hit run

Android

  1. Open the example/android/ folder with Android Studio
  2. Select your device in the devices drop-down
  3. Hit run