12f850c8e1
* Create Shaders.ts * Add `previewType` and `enableFpsGraph` * Add RN Skia native dependency * Add Skia Preview View on iOS * Pass 1 * Update FrameHostObject.mm * Wrap Canvas * Lockfiles * fix: Fix stuff * chore: Upgrade RNWorklets * Add `previewType` to set the Preview * feat: Add Example * Update project.pbxproj * `enableFpsGraph` * Cache the `std::shared_ptr<FrameHostObject>` * Update CameraView+RecordVideo.swift * Update SkiaMetalCanvasProvider.mm * Android: Integrate Skia Dependency * fix: Use new Prefix * Add example for rendering shader * chore: Upgrade CameraX * Remove KTX * Enable `viewBinding` * Revert "Enable `viewBinding`" This reverts commit f2a603f53b33ea4311a296422ffd1a910ce03f9e. * Revert "chore: Upgrade CameraX" This reverts commit 8dc832cf8754490d31a6192e6c1a1f11cdcd94fe. * Remove unneeded `ProcessCameraProvider.getInstance()` call * fix: Add REA hotfix patch * fix: Fix FrameHostObject dead in runAsync * fix: Make `runAsync` run truly async by dropping new Frames while executing * chore: Upgrade RN Worklets to latest * chore: Upgrade RN Skia * Revert "Remove KTX" This reverts commit 253f586633f7af2da992d2279fc206dc62597129. * Make Skia optional in CMake * Fix import * Update CMakeLists.txt * Update build.gradle * Update CameraView.kt * Update CameraView.kt * Update CameraView.kt * Update Shaders.ts * Center Blur * chore: Upgrade RN Worklets * feat: Add `toByteArray()`, `orientation`, `isMirrored` and `timestamp` to `Frame` (#1487) * feat: Implement `orientation` and `isMirrored` on Frame * feat: Add `toArrayBuffer()` func * perf: Do faster buffer copy * feat: Implement `toArrayBuffer()` on Android * feat: Add `orientation` and `isMirrored` to Android * feat: Add `timestamp` to Frame * Update Frame.ts * Update JImageProxy.h * Update FrameHostObject.cpp * Update FrameHostObject.cpp * Update CameraPage.tsx * fix: Format Swift |
||
---|---|---|
.. | ||
android | ||
ios | ||
src | ||
.eslintrc.js | ||
app.json | ||
babel.config.js | ||
clean.sh | ||
index.js | ||
metro.config.js | ||
package.json | ||
README.md | ||
tsconfig.json | ||
yarn.lock |
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
- Open the
example/ios/VisionCameraExample.xcworkspace
file with Xcode - Change signing configuration to your developer account
- Select your device in the devices drop-down
- Hit run
Android
- Open the
example/android/
folder with Android Studio - Select your device in the devices drop-down
- Hit run