chore: Move everything into package/
(#1745)
* Move everything into package * Remove .DS_Store * Move scripts and eslintrc to package * Create CODE_OF_CONDUCT.md * fix some links * Update all links (I think) * Update generated docs * Update notice-yarn-changes.yml * Update validate-android.yml * Update validate-cpp.yml * Delete notice-yarn-changes.yml * Update validate-cpp.yml * Update validate-cpp.yml * Update validate-js.yml * Update validate-cpp.yml * Update validate-cpp.yml * wrong c++ style * Revert "wrong c++ style" This reverts commit 55a3575589c6f13f8b05134d83384f55e0601ab2.
This commit is contained in:
parent
2a5c33323b
commit
036856aed5
6
.github/workflows/build-android.yml
vendored
6
.github/workflows/build-android.yml
vendored
@ -24,6 +24,9 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
name: Build Android Example App
|
name: Build Android Example App
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./package
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
@ -63,6 +66,9 @@ jobs:
|
|||||||
build-no-frame-processors:
|
build-no-frame-processors:
|
||||||
name: Build Android Example App (without Frame Processors)
|
name: Build Android Example App (without Frame Processors)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./package
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
4
.github/workflows/build-ios.yml
vendored
4
.github/workflows/build-ios.yml
vendored
@ -24,7 +24,7 @@ jobs:
|
|||||||
runs-on: macOS-latest
|
runs-on: macOS-latest
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: example/ios
|
working-directory: package/example/ios
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ jobs:
|
|||||||
runs-on: macOS-latest
|
runs-on: macOS-latest
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: example/ios
|
working-directory: package/example/ios
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
19
.github/workflows/notice-yarn-changes.yml
vendored
19
.github/workflows/notice-yarn-changes.yml
vendored
@ -1,19 +0,0 @@
|
|||||||
name: Notice yarn.lock changes
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
- name: Notice yarn.lock changes
|
|
||||||
uses: Simek/yarn-lock-changes@main
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
collapsibleThreshold: '25'
|
|
||||||
failOnDowngrade: 'false'
|
|
||||||
path: 'yarn.lock'
|
|
||||||
updateComment: 'true'
|
|
2
.github/workflows/validate-android.yml
vendored
2
.github/workflows/validate-android.yml
vendored
@ -20,7 +20,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./android
|
working-directory: ./package/android
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Setup JDK 11
|
- name: Setup JDK 11
|
||||||
|
21
.github/workflows/validate-cpp.yml
vendored
21
.github/workflows/validate-cpp.yml
vendored
@ -6,15 +6,15 @@ on:
|
|||||||
- main
|
- main
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/validate-cpp.yml'
|
- '.github/workflows/validate-cpp.yml'
|
||||||
- 'cpp/**'
|
- 'package/cpp/**'
|
||||||
- 'android/src/main/cpp/**'
|
- 'package/android/src/main/cpp/**'
|
||||||
- 'ios/**'
|
- 'package/ios/**'
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/validate-cpp.yml'
|
- '.github/workflows/validate-cpp.yml'
|
||||||
- 'cpp/**'
|
- 'package/cpp/**'
|
||||||
- 'android/src/main/cpp/**'
|
- 'package/android/src/main/cpp/**'
|
||||||
- 'ios/**'
|
- 'package/ios/**'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
@ -23,14 +23,15 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
path:
|
path:
|
||||||
- 'cpp'
|
- 'package/cpp'
|
||||||
- 'android/src/main/cpp'
|
- 'package/android/src/main/cpp'
|
||||||
- 'ios'
|
- 'package/ios'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Run clang-format style check
|
- name: Run clang-format style check
|
||||||
uses: jidicula/clang-format-action@v4.11.0
|
uses: mrousavy/clang-format-action@v1
|
||||||
with:
|
with:
|
||||||
clang-format-version: '16'
|
clang-format-version: '16'
|
||||||
check-path: ${{ matrix.path }}
|
check-path: ${{ matrix.path }}
|
||||||
|
clang-format-style-path: package/cpp/.clang-format
|
||||||
|
|
||||||
|
5
.github/workflows/validate-ios.yml
vendored
5
.github/workflows/validate-ios.yml
vendored
@ -15,6 +15,9 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
SwiftLint:
|
SwiftLint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./package
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Run SwiftLint GitHub Action (--strict)
|
- name: Run SwiftLint GitHub Action (--strict)
|
||||||
@ -27,7 +30,7 @@ jobs:
|
|||||||
runs-on: macOS-latest
|
runs-on: macOS-latest
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./ios
|
working-directory: ./package/ios
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
42
.github/workflows/validate-js.yml
vendored
42
.github/workflows/validate-js.yml
vendored
@ -6,32 +6,35 @@ on:
|
|||||||
- main
|
- main
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/validate-js.yml'
|
- '.github/workflows/validate-js.yml'
|
||||||
- 'src/**'
|
- 'package/src/**'
|
||||||
- '*.json'
|
- 'package/*.json'
|
||||||
- '*.js'
|
- 'package/*.js'
|
||||||
- '*.lock'
|
- 'package/*.lock'
|
||||||
- 'example/src/**'
|
- 'package/example/src/**'
|
||||||
- 'example/*.json'
|
- 'package/example/*.json'
|
||||||
- 'example/*.js'
|
- 'package/example/*.js'
|
||||||
- 'example/*.lock'
|
- 'package/example/*.lock'
|
||||||
- 'example/*.tsx'
|
- 'package/example/*.tsx'
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/validate-js.yml'
|
- '.github/workflows/validate-js.yml'
|
||||||
- 'src/**'
|
- 'package/src/**'
|
||||||
- '*.json'
|
- 'package/*.json'
|
||||||
- '*.js'
|
- 'package/*.js'
|
||||||
- '*.lock'
|
- 'package/*.lock'
|
||||||
- 'example/src/**'
|
- 'package/example/src/**'
|
||||||
- 'example/*.json'
|
- 'package/example/*.json'
|
||||||
- 'example/*.js'
|
- 'package/example/*.js'
|
||||||
- 'example/*.lock'
|
- 'package/example/*.lock'
|
||||||
- 'example/*.tsx'
|
- 'package/example/*.tsx'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
compile:
|
compile:
|
||||||
name: Compile JS (tsc)
|
name: Compile JS (tsc)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./package
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
@ -70,6 +73,9 @@ jobs:
|
|||||||
lint:
|
lint:
|
||||||
name: Lint JS (eslint, prettier)
|
name: Lint JS (eslint, prettier)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ./package
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
69
.gitignore
vendored
69
.gitignore
vendored
@ -1,70 +1 @@
|
|||||||
# OSX
|
|
||||||
#
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
# XDE
|
|
||||||
.expo/
|
|
||||||
|
|
||||||
# VSCode
|
|
||||||
jsconfig.json
|
|
||||||
|
|
||||||
# Xcode
|
|
||||||
#
|
|
||||||
build/
|
|
||||||
*.pbxuser
|
|
||||||
!default.pbxuser
|
|
||||||
*.mode1v3
|
|
||||||
!default.mode1v3
|
|
||||||
*.mode2v3
|
|
||||||
!default.mode2v3
|
|
||||||
*.perspectivev3
|
|
||||||
!default.perspectivev3
|
|
||||||
xcuserdata
|
|
||||||
*.xccheckout
|
|
||||||
*.moved-aside
|
|
||||||
DerivedData
|
|
||||||
*.hmap
|
|
||||||
*.ipa
|
|
||||||
*.xcuserstate
|
|
||||||
project.xcworkspace
|
|
||||||
|
|
||||||
# Android/IJ
|
|
||||||
#
|
|
||||||
.idea
|
|
||||||
.gradle
|
|
||||||
local.properties
|
|
||||||
android.iml
|
|
||||||
*.hprof
|
|
||||||
|
|
||||||
# Cocoapods
|
|
||||||
#
|
|
||||||
example/ios/Pods
|
|
||||||
|
|
||||||
# node.js
|
|
||||||
#
|
|
||||||
node_modules/
|
|
||||||
npm-debug.log
|
|
||||||
yarn-debug.log
|
|
||||||
yarn-error.log
|
|
||||||
|
|
||||||
# BUCK
|
|
||||||
buck-out/
|
|
||||||
\.buckd/
|
|
||||||
android/app/libs
|
|
||||||
android/keystores/debug.keystore
|
|
||||||
|
|
||||||
# Expo
|
|
||||||
.expo/*
|
|
||||||
|
|
||||||
# generated by bob
|
|
||||||
lib/
|
|
||||||
|
|
||||||
# we only use yarn
|
|
||||||
package-lock.json
|
|
||||||
|
|
||||||
# TypeDoc/Docusaurus stuff
|
|
||||||
docs/docs/api
|
|
||||||
|
|
||||||
# External native build folder generated in Android Studio 2.2 and later
|
|
||||||
.externalNativeBuild
|
|
||||||
.cxx/
|
|
||||||
|
76
CODE_OF_CONDUCT.md
Normal file
76
CODE_OF_CONDUCT.md
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
In the interest of fostering an open and welcoming environment, we as
|
||||||
|
contributors and maintainers pledge to making participation in our project and
|
||||||
|
our community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||||
|
level of experience, education, socio-economic status, nationality, personal
|
||||||
|
appearance, race, religion, or sexual identity and orientation.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to creating a positive environment
|
||||||
|
include:
|
||||||
|
|
||||||
|
* Using welcoming and inclusive language
|
||||||
|
* Being respectful of differing viewpoints and experiences
|
||||||
|
* Gracefully accepting constructive criticism
|
||||||
|
* Focusing on what is best for the community
|
||||||
|
* Showing empathy towards other community members
|
||||||
|
|
||||||
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
|
advances
|
||||||
|
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or electronic
|
||||||
|
address, without explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Our Responsibilities
|
||||||
|
|
||||||
|
Project maintainers are responsible for clarifying the standards of acceptable
|
||||||
|
behavior and are expected to take appropriate and fair corrective action in
|
||||||
|
response to any instances of unacceptable behavior.
|
||||||
|
|
||||||
|
Project maintainers have the right and responsibility to remove, edit, or
|
||||||
|
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||||
|
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||||
|
permanently any contributor for other behaviors that they deem inappropriate,
|
||||||
|
threatening, offensive, or harmful.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies both within project spaces and in public spaces
|
||||||
|
when an individual is representing the project or its community. Examples of
|
||||||
|
representing a project or community include using an official project e-mail
|
||||||
|
address, posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event. Representation of a project may be
|
||||||
|
further defined and clarified by project maintainers.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported by creating an issue on the GitHub repository. All
|
||||||
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
|
is deemed necessary and appropriate to the circumstances. The project team is
|
||||||
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
|
Further details of specific enforcement policies may be posted separately.
|
||||||
|
|
||||||
|
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||||
|
faith may face temporary or permanent repercussions as determined by other
|
||||||
|
members of the project's leadership.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||||
|
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see
|
||||||
|
https://www.contributor-covenant.org/faq
|
@ -39,7 +39,7 @@ cd ios && pod install
|
|||||||
|
|
||||||
* [Guides](https://react-native-vision-camera.com/docs/guides)
|
* [Guides](https://react-native-vision-camera.com/docs/guides)
|
||||||
* [API](https://react-native-vision-camera.com/docs/api)
|
* [API](https://react-native-vision-camera.com/docs/api)
|
||||||
* [Example](./example/)
|
* [Example](./package/example/)
|
||||||
* [Frame Processor Plugins](https://react-native-vision-camera.com/docs/guides/frame-processor-plugin-list)
|
* [Frame Processor Plugins](https://react-native-vision-camera.com/docs/guides/frame-processor-plugin-list)
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
@ -60,7 +60,7 @@ function App() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> See the [example](./example/) app
|
> See the [example](./package/example/) app
|
||||||
|
|
||||||
### Adopting at scale
|
### Adopting at scale
|
||||||
|
|
||||||
|
1
docs/docs/api/_category_.yml
Normal file
1
docs/docs/api/_category_.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
label: "API"
|
383
docs/docs/api/classes/Camera.md
Normal file
383
docs/docs/api/classes/Camera.md
Normal file
@ -0,0 +1,383 @@
|
|||||||
|
---
|
||||||
|
id: "Camera"
|
||||||
|
title: "Camera"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
### A powerful `<Camera>` component.
|
||||||
|
|
||||||
|
Read the [VisionCamera documentation](https://react-native-vision-camera.com/) for more information.
|
||||||
|
|
||||||
|
The `<Camera>` component's most important (and therefore _required_) properties are:
|
||||||
|
|
||||||
|
* [`device`](../interfaces/CameraProps.md#device): Specifies the [`CameraDevice`](../interfaces/CameraDevice.md) to use. Get a [`CameraDevice`](../interfaces/CameraDevice.md) by using the [`useCameraDevices()`](../#usecameradevices) hook, or manually by using the [`Camera.getAvailableCameraDevices()`](Camera.md#getavailablecameradevices) function.
|
||||||
|
* [`isActive`](../interfaces/CameraProps.md#isactive): A boolean value that specifies whether the Camera should actively stream video frames or not. This can be compared to a Video component, where `isActive` specifies whether the video is paused or not. If you fully unmount the `<Camera>` component instead of using `isActive={false}`, the Camera will take a bit longer to start again.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
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}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**`Component`**
|
||||||
|
|
||||||
|
## Hierarchy
|
||||||
|
|
||||||
|
- `PureComponent`<[`CameraProps`](../interfaces/CameraProps.md)\>
|
||||||
|
|
||||||
|
↳ **`Camera`**
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### focus
|
||||||
|
|
||||||
|
▸ **focus**(`point`): `Promise`<`void`\>
|
||||||
|
|
||||||
|
Focus the camera to a specific point in the coordinate system.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraRuntimeError`](CameraRuntimeError.md) When any kind of error occured while focussing. Use the [`code`](CameraRuntimeError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
await camera.current.focus({
|
||||||
|
x: tapEvent.x,
|
||||||
|
y: tapEvent.y
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `point` | [`Point`](../interfaces/Point.md) | The point to focus to. This should be relative to the Camera view's coordinate system, and expressed in Pixel on iOS and Points on Android. * `(0, 0)` means **top left**. * `(CameraView.width, CameraView.height)` means **bottom right**. Make sure the value doesn't exceed the CameraView's dimensions. |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<`void`\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:250](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L250)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### pauseRecording
|
||||||
|
|
||||||
|
▸ **pauseRecording**(): `Promise`<`void`\>
|
||||||
|
|
||||||
|
Pauses the current video recording.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraCaptureError`](CameraCaptureError.md) When any kind of error occured while pausing the video recording. Use the [`code`](CameraCaptureError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// Start
|
||||||
|
await camera.current.startRecording()
|
||||||
|
await timeout(1000)
|
||||||
|
// Pause
|
||||||
|
await camera.current.pauseRecording()
|
||||||
|
await timeout(500)
|
||||||
|
// Resume
|
||||||
|
await camera.current.resumeRecording()
|
||||||
|
await timeout(2000)
|
||||||
|
// Stop
|
||||||
|
const video = await camera.current.stopRecording()
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<`void`\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:175](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L175)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### resumeRecording
|
||||||
|
|
||||||
|
▸ **resumeRecording**(): `Promise`<`void`\>
|
||||||
|
|
||||||
|
Resumes a currently paused video recording.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraCaptureError`](CameraCaptureError.md) When any kind of error occured while resuming the video recording. Use the [`code`](CameraCaptureError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// Start
|
||||||
|
await camera.current.startRecording()
|
||||||
|
await timeout(1000)
|
||||||
|
// Pause
|
||||||
|
await camera.current.pauseRecording()
|
||||||
|
await timeout(500)
|
||||||
|
// Resume
|
||||||
|
await camera.current.resumeRecording()
|
||||||
|
await timeout(2000)
|
||||||
|
// Stop
|
||||||
|
const video = await camera.current.stopRecording()
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<`void`\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:203](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L203)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### startRecording
|
||||||
|
|
||||||
|
▸ **startRecording**(`options`): `void`
|
||||||
|
|
||||||
|
Start a new video recording.
|
||||||
|
|
||||||
|
Records in the following formats:
|
||||||
|
* **iOS**: QuickTime (`.mov`)
|
||||||
|
* **Android**: MPEG4 (`.mp4`)
|
||||||
|
|
||||||
|
**`Blocking`**
|
||||||
|
|
||||||
|
This function is synchronized/blocking.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraCaptureError`](CameraCaptureError.md) When any kind of error occured while starting the video recording. Use the [`code`](CameraCaptureError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
camera.current.startRecording({
|
||||||
|
onRecordingFinished: (video) => console.log(video),
|
||||||
|
onRecordingError: (error) => console.error(error),
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
camera.current.stopRecording()
|
||||||
|
}, 5000)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `options` | [`RecordVideoOptions`](../interfaces/RecordVideoOptions.md) |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:138](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L138)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### stopRecording
|
||||||
|
|
||||||
|
▸ **stopRecording**(): `Promise`<`void`\>
|
||||||
|
|
||||||
|
Stop the current video recording.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraCaptureError`](CameraCaptureError.md) When any kind of error occured while stopping the video recording. Use the [`code`](CameraCaptureError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
await camera.current.startRecording()
|
||||||
|
setTimeout(async () => {
|
||||||
|
const video = await camera.current.stopRecording()
|
||||||
|
}, 5000)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<`void`\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:224](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L224)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### takePhoto
|
||||||
|
|
||||||
|
▸ **takePhoto**(`options?`): `Promise`<[`PhotoFile`](../interfaces/PhotoFile.md)\>
|
||||||
|
|
||||||
|
Take a single photo and write it's content to a temporary file.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraCaptureError`](CameraCaptureError.md) When any kind of error occured while capturing the photo. Use the [`code`](CameraCaptureError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const photo = await camera.current.takePhoto({
|
||||||
|
qualityPrioritization: 'quality',
|
||||||
|
flash: 'on',
|
||||||
|
enableAutoRedEyeReduction: true
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `options?` | [`TakePhotoOptions`](../interfaces/TakePhotoOptions.md) |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<[`PhotoFile`](../interfaces/PhotoFile.md)\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:108](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L108)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### getAvailableCameraDevices
|
||||||
|
|
||||||
|
▸ `Static` **getAvailableCameraDevices**(): `Promise`<[`CameraDevice`](../interfaces/CameraDevice.md)[]\>
|
||||||
|
|
||||||
|
Get a list of all available camera devices on the current phone.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraRuntimeError`](CameraRuntimeError.md) When any kind of error occured while getting all available camera devices. Use the [`code`](CameraRuntimeError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const devices = await Camera.getAvailableCameraDevices()
|
||||||
|
const filtered = devices.filter((d) => matchesMyExpectations(d))
|
||||||
|
const sorted = devices.sort(sortDevicesByAmountOfCameras)
|
||||||
|
return {
|
||||||
|
back: sorted.find((d) => d.position === "back"),
|
||||||
|
front: sorted.find((d) => d.position === "front")
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<[`CameraDevice`](../interfaces/CameraDevice.md)[]\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:276](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L276)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### getCameraPermissionStatus
|
||||||
|
|
||||||
|
▸ `Static` **getCameraPermissionStatus**(): `Promise`<[`CameraPermissionStatus`](../#camerapermissionstatus)\>
|
||||||
|
|
||||||
|
Gets the current Camera Permission Status. Check this before mounting the Camera to ensure
|
||||||
|
the user has permitted the app to use the camera.
|
||||||
|
|
||||||
|
To actually prompt the user for camera permission, use [`requestCameraPermission()`](Camera.md#requestcamerapermission).
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraRuntimeError`](CameraRuntimeError.md) When any kind of error occured while getting the current permission status. Use the [`code`](CameraRuntimeError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<[`CameraPermissionStatus`](../#camerapermissionstatus)\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:291](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L291)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### getMicrophonePermissionStatus
|
||||||
|
|
||||||
|
▸ `Static` **getMicrophonePermissionStatus**(): `Promise`<[`CameraPermissionStatus`](../#camerapermissionstatus)\>
|
||||||
|
|
||||||
|
Gets the current Microphone-Recording Permission Status. Check this before mounting the Camera to ensure
|
||||||
|
the user has permitted the app to use the microphone.
|
||||||
|
|
||||||
|
To actually prompt the user for microphone permission, use [`requestMicrophonePermission()`](Camera.md#requestmicrophonepermission).
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraRuntimeError`](CameraRuntimeError.md) When any kind of error occured while getting the current permission status. Use the [`code`](CameraRuntimeError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<[`CameraPermissionStatus`](../#camerapermissionstatus)\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:306](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L306)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### requestCameraPermission
|
||||||
|
|
||||||
|
▸ `Static` **requestCameraPermission**(): `Promise`<[`CameraPermissionRequestResult`](../#camerapermissionrequestresult)\>
|
||||||
|
|
||||||
|
Shows a "request permission" alert to the user, and resolves with the new camera permission status.
|
||||||
|
|
||||||
|
If the user has previously blocked the app from using the camera, the alert will not be shown
|
||||||
|
and `"denied"` will be returned.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraRuntimeError`](CameraRuntimeError.md) When any kind of error occured while requesting permission. Use the [`code`](CameraRuntimeError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<[`CameraPermissionRequestResult`](../#camerapermissionrequestresult)\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:321](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L321)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### requestMicrophonePermission
|
||||||
|
|
||||||
|
▸ `Static` **requestMicrophonePermission**(): `Promise`<[`CameraPermissionRequestResult`](../#camerapermissionrequestresult)\>
|
||||||
|
|
||||||
|
Shows a "request permission" alert to the user, and resolves with the new microphone permission status.
|
||||||
|
|
||||||
|
If the user has previously blocked the app from using the microphone, the alert will not be shown
|
||||||
|
and `"denied"` will be returned.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraRuntimeError`](CameraRuntimeError.md) When any kind of error occured while requesting permission. Use the [`code`](CameraRuntimeError.md#code) property to get the actual error
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`Promise`<[`CameraPermissionRequestResult`](../#camerapermissionrequestresult)\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:336](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L336)
|
88
docs/docs/api/classes/CameraCaptureError.md
Normal file
88
docs/docs/api/classes/CameraCaptureError.md
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
id: "CameraCaptureError"
|
||||||
|
title: "CameraCaptureError"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
Represents any kind of error that occured while trying to capture a video or photo.
|
||||||
|
|
||||||
|
See the ["Camera Errors" documentation](https://react-native-vision-camera.com/docs/guides/errors) for more information about Camera Errors.
|
||||||
|
|
||||||
|
## Hierarchy
|
||||||
|
|
||||||
|
- `CameraError`<[`CaptureError`](../#captureerror)\>
|
||||||
|
|
||||||
|
↳ **`CameraCaptureError`**
|
||||||
|
|
||||||
|
## Accessors
|
||||||
|
|
||||||
|
### cause
|
||||||
|
|
||||||
|
• `get` **cause**(): `undefined` \| `Error`
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`undefined` \| `Error`
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
CameraError.cause
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:132](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L132)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### code
|
||||||
|
|
||||||
|
• `get` **code**(): `TCode`
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`TCode`
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
CameraError.code
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:126](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L126)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### message
|
||||||
|
|
||||||
|
• `get` **message**(): `string`
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
CameraError.message
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:129](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L129)
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### toString
|
||||||
|
|
||||||
|
▸ **toString**(): `string`
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
CameraError.toString
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:150](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L150)
|
88
docs/docs/api/classes/CameraRuntimeError.md
Normal file
88
docs/docs/api/classes/CameraRuntimeError.md
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
id: "CameraRuntimeError"
|
||||||
|
title: "CameraRuntimeError"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
Represents any kind of error that occured in the Camera View Module.
|
||||||
|
|
||||||
|
See the ["Camera Errors" documentation](https://react-native-vision-camera.com/docs/guides/errors) for more information about Camera Errors.
|
||||||
|
|
||||||
|
## Hierarchy
|
||||||
|
|
||||||
|
- `CameraError`<[`PermissionError`](../#permissionerror) \| [`ParameterError`](../#parametererror) \| [`DeviceError`](../#deviceerror) \| [`FormatError`](../#formaterror) \| [`SessionError`](../#sessionerror) \| [`SystemError`](../#systemerror) \| [`UnknownError`](../#unknownerror)\>
|
||||||
|
|
||||||
|
↳ **`CameraRuntimeError`**
|
||||||
|
|
||||||
|
## Accessors
|
||||||
|
|
||||||
|
### cause
|
||||||
|
|
||||||
|
• `get` **cause**(): `undefined` \| `Error`
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`undefined` \| `Error`
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
CameraError.cause
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:132](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L132)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### code
|
||||||
|
|
||||||
|
• `get` **code**(): `TCode`
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`TCode`
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
CameraError.code
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:126](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L126)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### message
|
||||||
|
|
||||||
|
• `get` **message**(): `string`
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
CameraError.message
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:129](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L129)
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### toString
|
||||||
|
|
||||||
|
▸ **toString**(): `string`
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
CameraError.toString
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:150](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L150)
|
2
docs/docs/api/classes/_category_.yml
Normal file
2
docs/docs/api/classes/_category_.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
label: "Classes"
|
||||||
|
position: 3
|
636
docs/docs/api/index.md
Normal file
636
docs/docs/api/index.md
Normal file
@ -0,0 +1,636 @@
|
|||||||
|
---
|
||||||
|
id: "index"
|
||||||
|
title: "VisionCamera"
|
||||||
|
sidebar_label: "Overview"
|
||||||
|
sidebar_position: 0.5
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Classes
|
||||||
|
|
||||||
|
- [Camera](classes/Camera.md)
|
||||||
|
- [CameraCaptureError](classes/CameraCaptureError.md)
|
||||||
|
- [CameraRuntimeError](classes/CameraRuntimeError.md)
|
||||||
|
|
||||||
|
## Interfaces
|
||||||
|
|
||||||
|
- [CameraDevice](interfaces/CameraDevice.md)
|
||||||
|
- [CameraDeviceFormat](interfaces/CameraDeviceFormat.md)
|
||||||
|
- [CameraProps](interfaces/CameraProps.md)
|
||||||
|
- [ErrorWithCause](interfaces/ErrorWithCause.md)
|
||||||
|
- [PhotoFile](interfaces/PhotoFile.md)
|
||||||
|
- [Point](interfaces/Point.md)
|
||||||
|
- [RecordVideoOptions](interfaces/RecordVideoOptions.md)
|
||||||
|
- [TakePhotoOptions](interfaces/TakePhotoOptions.md)
|
||||||
|
- [TemporaryFile](interfaces/TemporaryFile.md)
|
||||||
|
- [VideoFile](interfaces/VideoFile.md)
|
||||||
|
|
||||||
|
## Type Aliases
|
||||||
|
|
||||||
|
### AutoFocusSystem
|
||||||
|
|
||||||
|
Ƭ **AutoFocusSystem**: ``"contrast-detection"`` \| ``"phase-detection"`` \| ``"none"``
|
||||||
|
|
||||||
|
Indicates a format's autofocus system.
|
||||||
|
|
||||||
|
* `"none"`: Indicates that autofocus is not available
|
||||||
|
* `"contrast-detection"`: Indicates that autofocus is achieved by contrast detection. Contrast detection performs a focus scan to find the optimal position
|
||||||
|
* `"phase-detection"`: Indicates that autofocus is achieved by phase detection. Phase detection has the ability to achieve focus in many cases without a focus scan. Phase detection autofocus is typically less visually intrusive than contrast detection autofocus
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:53](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L53)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### CameraDevices
|
||||||
|
|
||||||
|
Ƭ **CameraDevices**: { [key in CameraPosition]: CameraDevice \| undefined }
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[hooks/useCameraDevices.ts:7](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/hooks/useCameraDevices.ts#L7)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### CameraPermissionRequestResult
|
||||||
|
|
||||||
|
Ƭ **CameraPermissionRequestResult**: ``"granted"`` \| ``"denied"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:15](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L15)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### CameraPermissionStatus
|
||||||
|
|
||||||
|
Ƭ **CameraPermissionStatus**: ``"granted"`` \| ``"not-determined"`` \| ``"denied"`` \| ``"restricted"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Camera.tsx:14](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Camera.tsx#L14)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### CameraPosition
|
||||||
|
|
||||||
|
Ƭ **CameraPosition**: ``"front"`` \| ``"back"`` \| ``"unspecified"`` \| ``"external"``
|
||||||
|
|
||||||
|
Represents the camera device position.
|
||||||
|
|
||||||
|
* `"back"`: Indicates that the device is physically located on the back of the system hardware
|
||||||
|
* `"front"`: Indicates that the device is physically located on the front of the system hardware
|
||||||
|
|
||||||
|
#### iOS only
|
||||||
|
* `"unspecified"`: Indicates that the device's position relative to the system hardware is unspecified
|
||||||
|
|
||||||
|
#### Android only
|
||||||
|
* `"external"`: The camera device is an external camera, and has no fixed facing relative to the device's screen. (Android only)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraPosition.ts:13](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraPosition.ts#L13)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### CaptureError
|
||||||
|
|
||||||
|
Ƭ **CaptureError**: ``"capture/invalid-photo-format"`` \| ``"capture/encoder-error"`` \| ``"capture/muxer-error"`` \| ``"capture/recording-in-progress"`` \| ``"capture/no-recording-in-progress"`` \| ``"capture/file-io-error"`` \| ``"capture/create-temp-file-error"`` \| ``"capture/invalid-video-options"`` \| ``"capture/create-recorder-error"`` \| ``"capture/recorder-error"`` \| ``"capture/no-valid-data"`` \| ``"capture/inactive-source"`` \| ``"capture/insufficient-storage"`` \| ``"capture/file-size-limit-reached"`` \| ``"capture/invalid-photo-codec"`` \| ``"capture/not-bound-error"`` \| ``"capture/capture-type-not-supported"`` \| ``"capture/video-not-enabled"`` \| ``"capture/photo-not-enabled"`` \| ``"capture/aborted"`` \| ``"capture/unknown"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:31](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L31)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### DeviceError
|
||||||
|
|
||||||
|
Ƭ **DeviceError**: ``"device/configuration-error"`` \| ``"device/no-device"`` \| ``"device/invalid-device"`` \| ``"device/torch-unavailable"`` \| ``"device/microphone-unavailable"`` \| ``"device/pixel-format-not-supported"`` \| ``"device/low-light-boost-not-supported"`` \| ``"device/focus-not-supported"`` \| ``"device/camera-not-available-on-simulator"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:8](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L8)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### FormatError
|
||||||
|
|
||||||
|
Ƭ **FormatError**: ``"format/invalid-fps"`` \| ``"format/invalid-hdr"`` \| ``"format/invalid-low-light-boost"`` \| ``"format/invalid-format"`` \| ``"format/invalid-color-space"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:18](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L18)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### FrameProcessor
|
||||||
|
|
||||||
|
Ƭ **FrameProcessor**: `Object`
|
||||||
|
|
||||||
|
#### Type declaration
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `frameProcessor` | (`frame`: `Frame`) => `void` |
|
||||||
|
| `type` | ``"frame-processor"`` |
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:7](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L7)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### LogicalCameraDeviceType
|
||||||
|
|
||||||
|
Ƭ **LogicalCameraDeviceType**: ``"dual-camera"`` \| ``"dual-wide-camera"`` \| ``"triple-camera"``
|
||||||
|
|
||||||
|
Indentifiers for a logical camera (Combinations of multiple physical cameras to create a single logical camera).
|
||||||
|
|
||||||
|
* `"dual-camera"`: A combination of wide-angle and telephoto cameras that creates a capture device.
|
||||||
|
* `"dual-wide-camera"`: A device that consists of two cameras of fixed focal length, one ultrawide angle and one wide angle.
|
||||||
|
* `"triple-camera"`: A device that consists of three cameras of fixed focal length, one ultrawide angle, one wide angle, and one telephoto.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:21](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L21)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### ParameterError
|
||||||
|
|
||||||
|
Ƭ **ParameterError**: ``"parameter/invalid-parameter"`` \| ``"parameter/unsupported-os"`` \| ``"parameter/unsupported-output"`` \| ``"parameter/unsupported-input"`` \| ``"parameter/invalid-combination"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:2](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L2)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### PermissionError
|
||||||
|
|
||||||
|
Ƭ **PermissionError**: ``"permission/microphone-permission-denied"`` \| ``"permission/camera-permission-denied"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:1](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L1)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### PhysicalCameraDeviceType
|
||||||
|
|
||||||
|
Ƭ **PhysicalCameraDeviceType**: ``"ultra-wide-angle-camera"`` \| ``"wide-angle-camera"`` \| ``"telephoto-camera"``
|
||||||
|
|
||||||
|
Indentifiers for a physical camera (one that actually exists on the back/front of the device)
|
||||||
|
|
||||||
|
* `"ultra-wide-angle-camera"`: A built-in camera with a shorter focal length than that of a wide-angle camera. (focal length between below 24mm)
|
||||||
|
* `"wide-angle-camera"`: A built-in wide-angle camera. (focal length between 24mm and 35mm)
|
||||||
|
* `"telephoto-camera"`: A built-in camera device with a longer focal length than a wide-angle camera. (focal length between above 85mm)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:12](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L12)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### SessionError
|
||||||
|
|
||||||
|
Ƭ **SessionError**: ``"session/camera-not-ready"`` \| ``"session/camera-cannot-be-opened"`` \| ``"session/camera-has-been-disconnected"`` \| ``"session/audio-session-setup-failed"`` \| ``"session/audio-in-use-by-other-app"`` \| ``"session/audio-session-failed-to-activate"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:24](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L24)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### SystemError
|
||||||
|
|
||||||
|
Ƭ **SystemError**: ``"system/camera-module-not-found"`` \| ``"system/no-camera-manager"`` \| ``"system/frame-processors-unavailable"`` \| ``"system/view-not-found"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:53](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L53)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### UnknownError
|
||||||
|
|
||||||
|
Ƭ **UnknownError**: ``"unknown/unknown"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:58](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L58)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### VideoStabilizationMode
|
||||||
|
|
||||||
|
Ƭ **VideoStabilizationMode**: ``"off"`` \| ``"standard"`` \| ``"cinematic"`` \| ``"cinematic-extended"`` \| ``"auto"``
|
||||||
|
|
||||||
|
Indicates a format's supported video stabilization mode. Enabling video stabilization may introduce additional latency into the video capture pipeline.
|
||||||
|
|
||||||
|
* `"off"`: No video stabilization. Indicates that video should not be stabilized
|
||||||
|
* `"standard"`: Standard software-based video stabilization. Standard video stabilization reduces the field of view by about 10%.
|
||||||
|
* `"cinematic"`: Advanced software-based video stabilization. This applies more aggressive cropping or transformations than standard.
|
||||||
|
* `"cinematic-extended"`: Extended software- and hardware-based stabilization that aggressively crops and transforms the video to apply a smooth cinematic stabilization.
|
||||||
|
* `"auto"`: Indicates that the most appropriate video stabilization mode for the device and format should be chosen automatically
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:64](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L64)
|
||||||
|
|
||||||
|
## Variables
|
||||||
|
|
||||||
|
### VisionCameraProxy
|
||||||
|
|
||||||
|
• `Const` **VisionCameraProxy**: `TVisionCameraProxy` = `proxy`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[FrameProcessorPlugins.ts:95](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/FrameProcessorPlugins.ts#L95)
|
||||||
|
|
||||||
|
## Functions
|
||||||
|
|
||||||
|
### createFrameProcessor
|
||||||
|
|
||||||
|
▸ **createFrameProcessor**(`frameProcessor`, `type`): [`FrameProcessor`](#frameprocessor)
|
||||||
|
|
||||||
|
Create a new Frame Processor function which you can pass to the `<Camera>`.
|
||||||
|
(See ["Frame Processors"](https://mrousavy.github.io/react-native-vision-camera/docs/guides/frame-processors))
|
||||||
|
|
||||||
|
Make sure to add the `'worklet'` directive to the top of the Frame Processor function, otherwise it will not get compiled into a worklet.
|
||||||
|
|
||||||
|
Also make sure to memoize the returned object, so that the Camera doesn't reset the Frame Processor Context each time.
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `frameProcessor` | (`frame`: `Frame`) => `void` |
|
||||||
|
| `type` | ``"frame-processor"`` |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
[`FrameProcessor`](#frameprocessor)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[hooks/useFrameProcessor.ts:13](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/hooks/useFrameProcessor.ts#L13)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### isErrorWithCause
|
||||||
|
|
||||||
|
▸ **isErrorWithCause**(`error`): error is ErrorWithCause
|
||||||
|
|
||||||
|
Checks if the given `error` is of type [`ErrorWithCause`](interfaces/ErrorWithCause.md)
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `error` | `unknown` | Any unknown object to validate |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
error is ErrorWithCause
|
||||||
|
|
||||||
|
`true` if the given `error` is of type [`ErrorWithCause`](interfaces/ErrorWithCause.md)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:176](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L176)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### parsePhysicalDeviceTypes
|
||||||
|
|
||||||
|
▸ **parsePhysicalDeviceTypes**(`physicalDeviceTypes`): [`PhysicalCameraDeviceType`](#physicalcameradevicetype) \| [`LogicalCameraDeviceType`](#logicalcameradevicetype)
|
||||||
|
|
||||||
|
Parses an array of physical device types into a single [`PhysicalCameraDeviceType`](#physicalcameradevicetype) or [`LogicalCameraDeviceType`](#logicalcameradevicetype), depending what matches.
|
||||||
|
|
||||||
|
**`Method`**
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `physicalDeviceTypes` | [`PhysicalCameraDeviceType`](#physicalcameradevicetype)[] |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
[`PhysicalCameraDeviceType`](#physicalcameradevicetype) \| [`LogicalCameraDeviceType`](#logicalcameradevicetype)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:27](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L27)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### runAsync
|
||||||
|
|
||||||
|
▸ **runAsync**(`frame`, `func`): `void`
|
||||||
|
|
||||||
|
Runs the given function asynchronously, while keeping a strong reference to the Frame.
|
||||||
|
|
||||||
|
For example, if you want to run a heavy face detection algorithm
|
||||||
|
while still drawing to the screen at 60 FPS, you can use `runAsync(...)`
|
||||||
|
to offload the face detection algorithm to a separate thread.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const frameProcessor = useFrameProcessor((frame) => {
|
||||||
|
'worklet'
|
||||||
|
console.log('New Frame')
|
||||||
|
runAsync(frame, () => {
|
||||||
|
'worklet'
|
||||||
|
const faces = detectFaces(frame)
|
||||||
|
const face = [faces0]
|
||||||
|
console.log(`Detected a new face: ${face}`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `frame` | `Frame` | The current Frame of the Frame Processor. |
|
||||||
|
| `func` | () => `void` | The function to execute. |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[FrameProcessorPlugins.ts:177](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/FrameProcessorPlugins.ts#L177)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### runAtTargetFps
|
||||||
|
|
||||||
|
▸ **runAtTargetFps**<`T`\>(`fps`, `func`): `T` \| `undefined`
|
||||||
|
|
||||||
|
Runs the given function at the given target FPS rate.
|
||||||
|
|
||||||
|
For example, if you want to run a heavy face detection algorithm
|
||||||
|
only once per second, you can use `runAtTargetFps(1, ...)` to
|
||||||
|
throttle it to 1 FPS.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const frameProcessor = useFrameProcessor((frame) => {
|
||||||
|
'worklet'
|
||||||
|
console.log('New Frame')
|
||||||
|
runAtTargetFps(5, () => {
|
||||||
|
'worklet'
|
||||||
|
const faces = detectFaces(frame)
|
||||||
|
console.log(`Detected a new face: ${faces[0]}`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Type parameters
|
||||||
|
|
||||||
|
| Name |
|
||||||
|
| :------ |
|
||||||
|
| `T` |
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `fps` | `number` | The target FPS rate at which the given function should be executed |
|
||||||
|
| `func` | () => `T` | The function to execute. |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`T` \| `undefined`
|
||||||
|
|
||||||
|
The result of the function if it was executed, or `undefined` otherwise.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[FrameProcessorPlugins.ts:136](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/FrameProcessorPlugins.ts#L136)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### sortDevices
|
||||||
|
|
||||||
|
▸ **sortDevices**(`left`, `right`): `number`
|
||||||
|
|
||||||
|
Compares two devices by the following criteria:
|
||||||
|
* `wide-angle-camera`s are ranked higher than others
|
||||||
|
* Devices with more physical cameras are ranked higher than ones with less. (e.g. "Triple Camera" > "Wide-Angle Camera")
|
||||||
|
|
||||||
|
> Note that this makes the `sort()` function descending, so the first element (`[0]`) is the "best" device.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const devices = camera.devices.sort(sortDevices)
|
||||||
|
const bestDevice = devices[0]
|
||||||
|
```
|
||||||
|
|
||||||
|
**`Method`**
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `left` | [`CameraDevice`](interfaces/CameraDevice.md) |
|
||||||
|
| `right` | [`CameraDevice`](interfaces/CameraDevice.md) |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`number`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[utils/FormatFilter.ts:18](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/utils/FormatFilter.ts#L18)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### sortFormats
|
||||||
|
|
||||||
|
▸ **sortFormats**(`left`, `right`): `number`
|
||||||
|
|
||||||
|
Sort formats by resolution and aspect ratio difference (to the Screen size).
|
||||||
|
|
||||||
|
> Note that this makes the `sort()` function descending, so the first element (`[0]`) is the "best" device.
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `left` | [`CameraDeviceFormat`](interfaces/CameraDeviceFormat.md) |
|
||||||
|
| `right` | [`CameraDeviceFormat`](interfaces/CameraDeviceFormat.md) |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`number`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[utils/FormatFilter.ts:72](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/utils/FormatFilter.ts#L72)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### tryParseNativeCameraError
|
||||||
|
|
||||||
|
▸ **tryParseNativeCameraError**<`T`\>(`nativeError`): [`CameraCaptureError`](classes/CameraCaptureError.md) \| [`CameraRuntimeError`](classes/CameraRuntimeError.md) \| `T`
|
||||||
|
|
||||||
|
Tries to parse an error coming from native to a typed JS camera error.
|
||||||
|
|
||||||
|
**`Method`**
|
||||||
|
|
||||||
|
#### Type parameters
|
||||||
|
|
||||||
|
| Name |
|
||||||
|
| :------ |
|
||||||
|
| `T` |
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `nativeError` | `T` | The native error instance. This is a JSON in the legacy native module architecture. |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
[`CameraCaptureError`](classes/CameraCaptureError.md) \| [`CameraRuntimeError`](classes/CameraRuntimeError.md) \| `T`
|
||||||
|
|
||||||
|
A [`CameraRuntimeError`](classes/CameraRuntimeError.md) or [`CameraCaptureError`](classes/CameraCaptureError.md), or the `nativeError` itself if it's not parsable
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:202](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L202)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### useCameraDevices
|
||||||
|
|
||||||
|
▸ **useCameraDevices**(): [`CameraDevices`](#cameradevices)
|
||||||
|
|
||||||
|
Gets the best available [`CameraDevice`](interfaces/CameraDevice.md). Devices with more cameras are preferred.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraRuntimeError`](classes/CameraRuntimeError.md) if no device was found.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
const device = useCameraDevice()
|
||||||
|
// ...
|
||||||
|
return <Camera device={device} />
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
[`CameraDevices`](#cameradevices)
|
||||||
|
|
||||||
|
The best matching [`CameraDevice`](interfaces/CameraDevice.md).
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[hooks/useCameraDevices.ts:29](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/hooks/useCameraDevices.ts#L29)
|
||||||
|
|
||||||
|
▸ **useCameraDevices**(`deviceType`): [`CameraDevices`](#cameradevices)
|
||||||
|
|
||||||
|
Gets a [`CameraDevice`](interfaces/CameraDevice.md) for the requested device type.
|
||||||
|
|
||||||
|
**`Throws`**
|
||||||
|
|
||||||
|
[`CameraRuntimeError`](classes/CameraRuntimeError.md) if no device was found.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
const device = useCameraDevice('wide-angle-camera')
|
||||||
|
// ...
|
||||||
|
return <Camera device={device} />
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `deviceType` | [`PhysicalCameraDeviceType`](#physicalcameradevicetype) \| [`LogicalCameraDeviceType`](#logicalcameradevicetype) | Specifies a device type which will be used as a device filter. |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
[`CameraDevices`](#cameradevices)
|
||||||
|
|
||||||
|
A [`CameraDevice`](interfaces/CameraDevice.md) for the requested device type.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[hooks/useCameraDevices.ts:44](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/hooks/useCameraDevices.ts#L44)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### useCameraFormat
|
||||||
|
|
||||||
|
▸ **useCameraFormat**(`device?`): [`CameraDeviceFormat`](interfaces/CameraDeviceFormat.md) \| `undefined`
|
||||||
|
|
||||||
|
Returns the best format for the given camera device.
|
||||||
|
|
||||||
|
This function tries to choose a format with the highest possible photo-capture resolution and best matching aspect ratio.
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `device?` | [`CameraDevice`](interfaces/CameraDevice.md) | The Camera Device |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
[`CameraDeviceFormat`](interfaces/CameraDeviceFormat.md) \| `undefined`
|
||||||
|
|
||||||
|
The best matching format for the given camera device, or `undefined` if the camera device is `undefined`.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[hooks/useCameraFormat.ts:14](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/hooks/useCameraFormat.ts#L14)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### useFrameProcessor
|
||||||
|
|
||||||
|
▸ **useFrameProcessor**(`frameProcessor`, `dependencies`): [`FrameProcessor`](#frameprocessor)
|
||||||
|
|
||||||
|
Returns a memoized Frame Processor function wich you can pass to the `<Camera>`.
|
||||||
|
(See ["Frame Processors"](https://mrousavy.github.io/react-native-vision-camera/docs/guides/frame-processors))
|
||||||
|
|
||||||
|
Make sure to add the `'worklet'` directive to the top of the Frame Processor function, otherwise it will not get compiled into a worklet.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const frameProcessor = useFrameProcessor((frame) => {
|
||||||
|
'worklet'
|
||||||
|
const qrCodes = scanQRCodes(frame)
|
||||||
|
console.log(`QR Codes: ${qrCodes}`)
|
||||||
|
}, [])
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `frameProcessor` | (`frame`: `Frame`) => `void` | The Frame Processor |
|
||||||
|
| `dependencies` | `DependencyList` | The React dependencies which will be copied into the VisionCamera JS-Runtime. |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
[`FrameProcessor`](#frameprocessor)
|
||||||
|
|
||||||
|
The memoized Frame Processor.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[hooks/useFrameProcessor.ts:49](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/hooks/useFrameProcessor.ts#L49)
|
246
docs/docs/api/interfaces/CameraDevice.md
Normal file
246
docs/docs/api/interfaces/CameraDevice.md
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
---
|
||||||
|
id: "CameraDevice"
|
||||||
|
title: "CameraDevice"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
Represents a camera device discovered by the [`Camera.getAvailableCameraDevices()`](../classes/Camera.md#getavailablecameradevices) function
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### devices
|
||||||
|
|
||||||
|
• **devices**: [`PhysicalCameraDeviceType`](../#physicalcameradevicetype)[]
|
||||||
|
|
||||||
|
The physical devices this `CameraDevice` contains.
|
||||||
|
|
||||||
|
* If this camera device is a **logical camera** (combination of multiple physical cameras), there are multiple cameras in this array.
|
||||||
|
* If this camera device is a **physical camera**, there is only a single element in this array.
|
||||||
|
|
||||||
|
You can check if the camera is a logical multi-camera by using the `isMultiCam` property.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:149](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L149)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### formats
|
||||||
|
|
||||||
|
• **formats**: [`CameraDeviceFormat`](CameraDeviceFormat.md)[]
|
||||||
|
|
||||||
|
All available formats for this camera device. Use this to find the best format for your use case and set it to the Camera's [`Camera's .format`](CameraProps.md#format) property.
|
||||||
|
|
||||||
|
See [the Camera Formats documentation](https://react-native-vision-camera.com/docs/guides/formats) for more information about Camera Formats.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:203](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L203)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### hardwareLevel
|
||||||
|
|
||||||
|
• **hardwareLevel**: ``"legacy"`` \| ``"limited"`` \| ``"full"``
|
||||||
|
|
||||||
|
The hardware level of the Camera.
|
||||||
|
- On Android, some older devices are running at a `legacy` or `limited` level which means they are running in a backwards compatible mode.
|
||||||
|
- On iOS, all devices are `full`.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:229](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L229)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### hasFlash
|
||||||
|
|
||||||
|
• **hasFlash**: `boolean`
|
||||||
|
|
||||||
|
Specifies whether this camera supports enabling flash for photo capture.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:161](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L161)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### hasTorch
|
||||||
|
|
||||||
|
• **hasTorch**: `boolean`
|
||||||
|
|
||||||
|
Specifies whether this camera supports continuously enabling the flash to act like a torch (flash with video capture)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:165](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L165)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### id
|
||||||
|
|
||||||
|
• **id**: `string`
|
||||||
|
|
||||||
|
The native ID of the camera device instance.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:140](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L140)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### isMultiCam
|
||||||
|
|
||||||
|
• **isMultiCam**: `boolean`
|
||||||
|
|
||||||
|
A property indicating whether the device is a virtual multi-camera consisting of multiple combined physical cameras.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
* The Dual Camera, which supports seamlessly switching between a wide and telephoto camera while zooming and generating depth data from the disparities between the different points of view of the physical cameras.
|
||||||
|
* The TrueDepth Camera, which generates depth data from disparities between a YUV camera and an Infrared camera pointed in the same direction.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:173](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L173)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### maxZoom
|
||||||
|
|
||||||
|
• **maxZoom**: `number`
|
||||||
|
|
||||||
|
Maximum available zoom factor (e.g. `128`)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:181](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L181)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### minZoom
|
||||||
|
|
||||||
|
• **minZoom**: `number`
|
||||||
|
|
||||||
|
Minimum available zoom factor (e.g. `1`)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:177](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L177)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### name
|
||||||
|
|
||||||
|
• **name**: `string`
|
||||||
|
|
||||||
|
A friendly localized name describing the camera.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:157](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L157)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### neutralZoom
|
||||||
|
|
||||||
|
• **neutralZoom**: `number`
|
||||||
|
|
||||||
|
The zoom factor where the camera is "neutral".
|
||||||
|
|
||||||
|
* For single-physical cameras this property is always `1.0`.
|
||||||
|
* For multi cameras this property is a value between `minZoom` and `maxZoom`, where the camera is in _wide-angle_ mode and hasn't switched to the _ultra-wide-angle_ ("fish-eye") or telephoto camera yet.
|
||||||
|
|
||||||
|
Use this value as an initial value for the zoom property if you implement custom zoom. (e.g. reanimated shared value should be initially set to this value)
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const device = ...
|
||||||
|
|
||||||
|
const zoom = useSharedValue(device.neutralZoom) // <-- initial value so it doesn't start at ultra-wide
|
||||||
|
const cameraProps = useAnimatedProps(() => ({
|
||||||
|
zoom: zoom.value
|
||||||
|
}))
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:197](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L197)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### position
|
||||||
|
|
||||||
|
• **position**: [`CameraPosition`](../#cameraposition)
|
||||||
|
|
||||||
|
Specifies the physical position of this camera. (back or front)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:153](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L153)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### sensorOrientation
|
||||||
|
|
||||||
|
• **sensorOrientation**: `Orientation`
|
||||||
|
|
||||||
|
Represents the sensor's orientation relative to the phone.
|
||||||
|
For most phones this will be landscape, as Camera sensors are usually always rotated by 90 degrees (i.e. width and height are flipped).
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:234](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L234)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### supportsDepthCapture
|
||||||
|
|
||||||
|
• **supportsDepthCapture**: `boolean`
|
||||||
|
|
||||||
|
Whether this camera supports taking photos with depth data.
|
||||||
|
|
||||||
|
**! Work in Progress !**
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:213](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L213)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### supportsFocus
|
||||||
|
|
||||||
|
• **supportsFocus**: `boolean`
|
||||||
|
|
||||||
|
Specifies whether this device supports focusing ([`Camera.focus(...)`](../classes/Camera.md#focus))
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:223](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L223)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### supportsLowLightBoost
|
||||||
|
|
||||||
|
• **supportsLowLightBoost**: `boolean`
|
||||||
|
|
||||||
|
Whether this camera device supports low light boost.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:207](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L207)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### supportsRawCapture
|
||||||
|
|
||||||
|
• **supportsRawCapture**: `boolean`
|
||||||
|
|
||||||
|
Whether this camera supports taking photos in RAW format
|
||||||
|
|
||||||
|
**! Work in Progress !**
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:219](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L219)
|
189
docs/docs/api/interfaces/CameraDeviceFormat.md
Normal file
189
docs/docs/api/interfaces/CameraDeviceFormat.md
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
---
|
||||||
|
id: "CameraDeviceFormat"
|
||||||
|
title: "CameraDeviceFormat"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
A Camera Device's video format. Do not create instances of this type yourself, only use [`Camera.getAvailableCameraDevices()`](../classes/Camera.md#getavailablecameradevices).
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### autoFocusSystem
|
||||||
|
|
||||||
|
• **autoFocusSystem**: [`AutoFocusSystem`](../#autofocussystem)
|
||||||
|
|
||||||
|
Specifies this format's auto focus system.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:121](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L121)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### fieldOfView
|
||||||
|
|
||||||
|
• **fieldOfView**: `number`
|
||||||
|
|
||||||
|
The video field of view in degrees
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:97](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L97)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### maxFps
|
||||||
|
|
||||||
|
• **maxFps**: `number`
|
||||||
|
|
||||||
|
The maximum frame rate this Format is able to run at. High resolution formats often run at lower frame rates.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:117](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L117)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### maxISO
|
||||||
|
|
||||||
|
• **maxISO**: `number`
|
||||||
|
|
||||||
|
Maximum supported ISO value
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:89](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L89)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### maxZoom
|
||||||
|
|
||||||
|
• **maxZoom**: `number`
|
||||||
|
|
||||||
|
The maximum zoom factor (e.g. `128`)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:101](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L101)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### minFps
|
||||||
|
|
||||||
|
• **minFps**: `number`
|
||||||
|
|
||||||
|
The minum frame rate this Format needs to run at. High resolution formats often run at lower frame rates.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:113](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L113)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### minISO
|
||||||
|
|
||||||
|
• **minISO**: `number`
|
||||||
|
|
||||||
|
Minimum supported ISO value
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:93](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L93)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### photoHeight
|
||||||
|
|
||||||
|
• **photoHeight**: `number`
|
||||||
|
|
||||||
|
The height of the highest resolution a still image (photo) can be produced in
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:73](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L73)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### photoWidth
|
||||||
|
|
||||||
|
• **photoWidth**: `number`
|
||||||
|
|
||||||
|
The width of the highest resolution a still image (photo) can be produced in
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:77](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L77)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### pixelFormats
|
||||||
|
|
||||||
|
• **pixelFormats**: `PixelFormat`[]
|
||||||
|
|
||||||
|
Specifies this format's supported pixel-formats.
|
||||||
|
In most cases, this is `['native', 'yuv']`.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:130](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L130)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### supportsPhotoHDR
|
||||||
|
|
||||||
|
• **supportsPhotoHDR**: `boolean`
|
||||||
|
|
||||||
|
Specifies whether this format supports HDR mode for photo capture
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:109](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L109)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### supportsVideoHDR
|
||||||
|
|
||||||
|
• **supportsVideoHDR**: `boolean`
|
||||||
|
|
||||||
|
Specifies whether this format supports HDR mode for video capture
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:105](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L105)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### videoHeight
|
||||||
|
|
||||||
|
• **videoHeight**: `number`
|
||||||
|
|
||||||
|
The video resolutions's height
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:81](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L81)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### videoStabilizationModes
|
||||||
|
|
||||||
|
• **videoStabilizationModes**: [`VideoStabilizationMode`](../#videostabilizationmode)[]
|
||||||
|
|
||||||
|
All supported video stabilization modes
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:125](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L125)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### videoWidth
|
||||||
|
|
||||||
|
• **videoWidth**: `number`
|
||||||
|
|
||||||
|
The video resolution's width
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:85](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraDevice.ts#L85)
|
406
docs/docs/api/interfaces/CameraProps.md
Normal file
406
docs/docs/api/interfaces/CameraProps.md
Normal file
@ -0,0 +1,406 @@
|
|||||||
|
---
|
||||||
|
id: "CameraProps"
|
||||||
|
title: "CameraProps"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Hierarchy
|
||||||
|
|
||||||
|
- `ViewProps`
|
||||||
|
|
||||||
|
↳ **`CameraProps`**
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### audio
|
||||||
|
|
||||||
|
• `Optional` **audio**: `boolean`
|
||||||
|
|
||||||
|
Enables **audio capture** for video recordings (see ["Recording Videos"](https://react-native-vision-camera.com/docs/guides/capturing/#recording-videos))
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:61](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L61)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### device
|
||||||
|
|
||||||
|
• **device**: [`CameraDevice`](CameraDevice.md)
|
||||||
|
|
||||||
|
The Camera Device to use.
|
||||||
|
|
||||||
|
See the [Camera Devices](https://react-native-vision-camera.com/docs/guides/devices) section in the documentation for more information about Camera Devices.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
const devices = useCameraDevices('wide-angle-camera')
|
||||||
|
const device = devices.back
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Camera
|
||||||
|
device={device}
|
||||||
|
isActive={true}
|
||||||
|
style={StyleSheet.absoluteFill}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:37](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L37)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### enableDepthData
|
||||||
|
|
||||||
|
• `Optional` **enableDepthData**: `boolean`
|
||||||
|
|
||||||
|
Also captures data from depth-perception sensors. (e.g. disparity maps)
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:145](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L145)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### enableFpsGraph
|
||||||
|
|
||||||
|
• `Optional` **enableFpsGraph**: `boolean`
|
||||||
|
|
||||||
|
If `true`, show a debug view to display the FPS of the Camera session.
|
||||||
|
This is useful for debugging your Frame Processor's speed.
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:173](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L173)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### enableHighQualityPhotos
|
||||||
|
|
||||||
|
• `Optional` **enableHighQualityPhotos**: `boolean`
|
||||||
|
|
||||||
|
Indicates whether the Camera should prepare the photo pipeline to provide maximum quality photos.
|
||||||
|
|
||||||
|
This enables:
|
||||||
|
* High Resolution Capture ([`isHighResolutionCaptureEnabled`](https://developer.apple.com/documentation/avfoundation/avcapturephotooutput/1648721-ishighresolutioncaptureenabled))
|
||||||
|
* Virtual Device fusion for greater detail ([`isVirtualDeviceConstituentPhotoDeliveryEnabled`](https://developer.apple.com/documentation/avfoundation/avcapturephotooutput/3192189-isvirtualdeviceconstituentphotod))
|
||||||
|
* Dual Device fusion for greater detail ([`isDualCameraDualPhotoDeliveryEnabled`](https://developer.apple.com/documentation/avfoundation/avcapturephotosettings/2873917-isdualcameradualphotodeliveryena))
|
||||||
|
* Sets the maximum quality prioritization to `.quality` ([`maxPhotoQualityPrioritization`](https://developer.apple.com/documentation/avfoundation/avcapturephotooutput/3182995-maxphotoqualityprioritization))
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:166](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L166)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### enablePortraitEffectsMatteDelivery
|
||||||
|
|
||||||
|
• `Optional` **enablePortraitEffectsMatteDelivery**: `boolean`
|
||||||
|
|
||||||
|
A boolean specifying whether the photo render pipeline is prepared for portrait effects matte delivery.
|
||||||
|
|
||||||
|
When enabling this, you must also set `enableDepthData` to `true`.
|
||||||
|
|
||||||
|
**`Platform`**
|
||||||
|
|
||||||
|
iOS 12.0+
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:154](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L154)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### enableZoomGesture
|
||||||
|
|
||||||
|
• `Optional` **enableZoomGesture**: `boolean`
|
||||||
|
|
||||||
|
Enables or disables the native pinch to zoom gesture.
|
||||||
|
|
||||||
|
If you want to implement a custom zoom gesture, see [the Zooming with Reanimated documentation](https://react-native-vision-camera.com/docs/guides/animated).
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:106](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L106)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### format
|
||||||
|
|
||||||
|
• `Optional` **format**: [`CameraDeviceFormat`](CameraDeviceFormat.md)
|
||||||
|
|
||||||
|
Selects a given format. By default, the best matching format is chosen.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:113](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L113)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### fps
|
||||||
|
|
||||||
|
• `Optional` **fps**: `number`
|
||||||
|
|
||||||
|
Specify the frames per second this camera should use. Make sure the given `format` includes a frame rate range with the given `fps`.
|
||||||
|
|
||||||
|
Requires `format` to be set.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:119](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L119)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### frameProcessor
|
||||||
|
|
||||||
|
• `Optional` **frameProcessor**: [`FrameProcessor`](../#frameprocessor)
|
||||||
|
|
||||||
|
A worklet which will be called for every frame the Camera "sees".
|
||||||
|
|
||||||
|
> See [the Frame Processors documentation](https://mrousavy.github.io/react-native-vision-camera/docs/guides/frame-processors) for more information
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
const frameProcessor = useFrameProcessor((frame) => {
|
||||||
|
'worklet'
|
||||||
|
const qrCodes = scanQRCodes(frame)
|
||||||
|
console.log(`Detected QR Codes: ${qrCodes}`)
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
return <Camera {...cameraProps} frameProcessor={frameProcessor} />
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:204](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L204)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### hdr
|
||||||
|
|
||||||
|
• `Optional` **hdr**: `boolean`
|
||||||
|
|
||||||
|
Enables or disables HDR on this camera device. Make sure the given `format` supports HDR mode.
|
||||||
|
|
||||||
|
Requires `format` to be set.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:125](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L125)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### isActive
|
||||||
|
|
||||||
|
• **isActive**: `boolean`
|
||||||
|
|
||||||
|
Whether the Camera should actively stream video frames, or not. See the [documentation about the `isActive` prop](https://react-native-vision-camera.com/docs/guides/lifecycle#the-isactive-prop) for more information.
|
||||||
|
|
||||||
|
This can be compared to a Video component, where `isActive` specifies whether the video is paused or not.
|
||||||
|
|
||||||
|
> Note: If you fully unmount the `<Camera>` component instead of using `isActive={false}`, the Camera will take a bit longer to start again. In return, it will use less resources since the Camera will be completely destroyed when unmounted.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:45](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L45)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### lowLightBoost
|
||||||
|
|
||||||
|
• `Optional` **lowLightBoost**: `boolean`
|
||||||
|
|
||||||
|
Enables or disables low-light boost on this camera device. Make sure the given `format` supports low-light boost.
|
||||||
|
|
||||||
|
Requires `format` to be set.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:131](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L131)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### onError
|
||||||
|
|
||||||
|
• `Optional` **onError**: (`error`: [`CameraRuntimeError`](../classes/CameraRuntimeError.md)) => `void`
|
||||||
|
|
||||||
|
#### Type declaration
|
||||||
|
|
||||||
|
▸ (`error`): `void`
|
||||||
|
|
||||||
|
Called when any kind of runtime error occured.
|
||||||
|
|
||||||
|
##### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `error` | [`CameraRuntimeError`](../classes/CameraRuntimeError.md) |
|
||||||
|
|
||||||
|
##### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:183](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L183)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### onInitialized
|
||||||
|
|
||||||
|
• `Optional` **onInitialized**: () => `void`
|
||||||
|
|
||||||
|
#### Type declaration
|
||||||
|
|
||||||
|
▸ (): `void`
|
||||||
|
|
||||||
|
Called when the camera was successfully initialized.
|
||||||
|
|
||||||
|
##### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:187](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L187)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### orientation
|
||||||
|
|
||||||
|
• `Optional` **orientation**: `Orientation`
|
||||||
|
|
||||||
|
Represents the orientation of all Camera Outputs (Photo, Video, and Frame Processor). If this value is not set, the device orientation is used.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:177](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L177)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### photo
|
||||||
|
|
||||||
|
• `Optional` **photo**: `boolean`
|
||||||
|
|
||||||
|
Enables **photo capture** with the `takePhoto` function (see ["Taking Photos"](https://react-native-vision-camera.com/docs/guides/capturing#taking-photos))
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:51](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L51)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### pixelFormat
|
||||||
|
|
||||||
|
• `Optional` **pixelFormat**: ``"yuv"`` \| ``"rgb"`` \| ``"native"``
|
||||||
|
|
||||||
|
Specifies the pixel format for the video pipeline.
|
||||||
|
|
||||||
|
Frames from a [Frame Processor](https://mrousavy.github.io/react-native-vision-camera/docs/guides/frame-processors) will be streamed in the pixel format specified here.
|
||||||
|
|
||||||
|
While `native` and `yuv` are the most efficient formats, some ML models (such as MLKit Barcode detection) require input Frames to be in RGB colorspace, otherwise they just output nonsense.
|
||||||
|
|
||||||
|
- `native`: The hardware native GPU buffer format. This is the most efficient format. (`PRIVATE` on Android, sometimes YUV on iOS)
|
||||||
|
- `yuv`: The YUV (Y'CbCr 4:2:0 or NV21, 8-bit) format, either video- or full-range, depending on hardware capabilities. This is the second most efficient format.
|
||||||
|
- `rgb`: The RGB (RGB, RGBA or ABGRA, 8-bit) format. This is least efficient and requires explicit conversion.
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
`native`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:75](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L75)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### torch
|
||||||
|
|
||||||
|
• `Optional` **torch**: ``"off"`` \| ``"on"``
|
||||||
|
|
||||||
|
Set the current torch mode.
|
||||||
|
|
||||||
|
Note: The torch is only available on `"back"` cameras, and isn't supported by every phone.
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
"off"
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:86](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L86)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### video
|
||||||
|
|
||||||
|
• `Optional` **video**: `boolean`
|
||||||
|
|
||||||
|
Enables **video capture** with the `startRecording` function (see ["Recording Videos"](https://react-native-vision-camera.com/docs/guides/capturing/#recording-videos))
|
||||||
|
|
||||||
|
Note: If both the `photo` and `video` properties are enabled at the same time and the device is running at a `hardwareLevel` of `'legacy'` or `'limited'`, VisionCamera _might_ use a lower resolution for video capture due to hardware constraints.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:57](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L57)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### videoStabilizationMode
|
||||||
|
|
||||||
|
• `Optional` **videoStabilizationMode**: [`VideoStabilizationMode`](../#videostabilizationmode)
|
||||||
|
|
||||||
|
Specifies the video stabilization mode to use.
|
||||||
|
|
||||||
|
Requires a `format` to be set that contains the given `videoStabilizationMode`.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:137](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L137)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### zoom
|
||||||
|
|
||||||
|
• `Optional` **zoom**: `number`
|
||||||
|
|
||||||
|
Specifies the zoom factor of the current camera, in "factor"/scale.
|
||||||
|
|
||||||
|
This value ranges from `minZoom` (e.g. `1`) to `maxZoom` (e.g. `128`). It is recommended to set this value
|
||||||
|
to the CameraDevice's `neutralZoom` per default and let the user zoom out to the fish-eye (ultra-wide) camera
|
||||||
|
on demand (if available)
|
||||||
|
|
||||||
|
**Note:** Linearly increasing this value always appears logarithmic to the user.
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
1.0
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:98](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraProps.ts#L98)
|
98
docs/docs/api/interfaces/ErrorWithCause.md
Normal file
98
docs/docs/api/interfaces/ErrorWithCause.md
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
---
|
||||||
|
id: "ErrorWithCause"
|
||||||
|
title: "ErrorWithCause"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
Represents a JSON-style error cause. This contains native `NSError`/`Throwable` information, and can have recursive [`.cause`](ErrorWithCause.md#cause) properties until the ultimate cause has been found.
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### cause
|
||||||
|
|
||||||
|
• `Optional` **cause**: [`ErrorWithCause`](ErrorWithCause.md)
|
||||||
|
|
||||||
|
Optional additional cause for nested errors
|
||||||
|
|
||||||
|
* iOS: N/A
|
||||||
|
* Android: `Throwable.cause`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:105](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L105)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### code
|
||||||
|
|
||||||
|
• `Optional` **code**: `number`
|
||||||
|
|
||||||
|
The native error's code.
|
||||||
|
|
||||||
|
* iOS: `NSError.code`
|
||||||
|
* Android: N/A
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:70](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L70)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### details
|
||||||
|
|
||||||
|
• `Optional` **details**: `Record`<`string`, `unknown`\>
|
||||||
|
|
||||||
|
Optional additional details
|
||||||
|
|
||||||
|
* iOS: `NSError.userInfo`
|
||||||
|
* Android: N/A
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:91](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L91)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### domain
|
||||||
|
|
||||||
|
• `Optional` **domain**: `string`
|
||||||
|
|
||||||
|
The native error's domain.
|
||||||
|
|
||||||
|
* iOS: `NSError.domain`
|
||||||
|
* Android: N/A
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:77](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L77)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### message
|
||||||
|
|
||||||
|
• **message**: `string`
|
||||||
|
|
||||||
|
The native error description
|
||||||
|
|
||||||
|
* iOS: `NSError.message`
|
||||||
|
* Android: `Throwable.message`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:84](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L84)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### stacktrace
|
||||||
|
|
||||||
|
• `Optional` **stacktrace**: `string`
|
||||||
|
|
||||||
|
Optional Java stacktrace
|
||||||
|
|
||||||
|
* iOS: N/A
|
||||||
|
* Android: `Throwable.stacktrace.toString()`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraError.ts:98](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/CameraError.ts#L98)
|
118
docs/docs/api/interfaces/Frame.md
Normal file
118
docs/docs/api/interfaces/Frame.md
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
---
|
||||||
|
id: "Frame"
|
||||||
|
title: "Frame"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
A single frame, as seen by the camera.
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### bytesPerRow
|
||||||
|
|
||||||
|
• **bytesPerRow**: `number`
|
||||||
|
|
||||||
|
Returns the amount of bytes per row.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Frame.ts:20](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Frame.ts#L20)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### height
|
||||||
|
|
||||||
|
• **height**: `number`
|
||||||
|
|
||||||
|
Returns the height of the frame, in pixels.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Frame.ts:16](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Frame.ts#L16)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### isValid
|
||||||
|
|
||||||
|
• **isValid**: `boolean`
|
||||||
|
|
||||||
|
Whether the underlying buffer is still valid or not. The buffer will be released after the frame processor returns, or `close()` is called.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Frame.ts:8](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Frame.ts#L8)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### planesCount
|
||||||
|
|
||||||
|
• **planesCount**: `number`
|
||||||
|
|
||||||
|
Returns the number of planes this frame contains.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Frame.ts:24](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Frame.ts#L24)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### width
|
||||||
|
|
||||||
|
• **width**: `number`
|
||||||
|
|
||||||
|
Returns the width of the frame, in pixels.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Frame.ts:12](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Frame.ts#L12)
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### close
|
||||||
|
|
||||||
|
▸ **close**(): `void`
|
||||||
|
|
||||||
|
Closes and disposes the Frame.
|
||||||
|
Only close frames that you have created yourself, e.g. by copying the frame you receive in a frame processor.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const frameProcessor = useFrameProcessor((frame) => {
|
||||||
|
const smallerCopy = resize(frame, 480, 270)
|
||||||
|
// run AI ...
|
||||||
|
smallerCopy.close()
|
||||||
|
// don't close `frame`!
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Frame.ts:48](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Frame.ts#L48)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### toString
|
||||||
|
|
||||||
|
▸ **toString**(): `string`
|
||||||
|
|
||||||
|
Returns a string representation of the frame.
|
||||||
|
|
||||||
|
**`Example`**
|
||||||
|
|
||||||
|
```ts
|
||||||
|
console.log(frame.toString()) // -> "3840 x 2160 Frame"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Frame.ts:33](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Frame.ts#L33)
|
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
id: "FrameProcessorPerformanceSuggestion"
|
||||||
|
title: "FrameProcessorPerformanceSuggestion"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### suggestedFrameProcessorFps
|
||||||
|
|
||||||
|
• **suggestedFrameProcessorFps**: `number`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:9](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/CameraProps.ts#L9)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### type
|
||||||
|
|
||||||
|
• **type**: ``"can-use-higher-fps"`` \| ``"should-use-lower-fps"``
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraProps.ts:8](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/CameraProps.ts#L8)
|
26
docs/docs/api/interfaces/FrameRateRange.md
Normal file
26
docs/docs/api/interfaces/FrameRateRange.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
id: "FrameRateRange"
|
||||||
|
title: "FrameRateRange"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### maxFrameRate
|
||||||
|
|
||||||
|
• **maxFrameRate**: `number`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:104](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/CameraDevice.ts#L104)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### minFrameRate
|
||||||
|
|
||||||
|
• **minFrameRate**: `number`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[CameraDevice.ts:103](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/CameraDevice.ts#L103)
|
178
docs/docs/api/interfaces/PhotoFile.md
Normal file
178
docs/docs/api/interfaces/PhotoFile.md
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
---
|
||||||
|
id: "PhotoFile"
|
||||||
|
title: "PhotoFile"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
Represents a Photo taken by the Camera written to the local filesystem.
|
||||||
|
|
||||||
|
See [`Camera.takePhoto()`](../classes/Camera.md#takephoto)
|
||||||
|
|
||||||
|
## Hierarchy
|
||||||
|
|
||||||
|
- [`TemporaryFile`](TemporaryFile.md)
|
||||||
|
|
||||||
|
↳ **`PhotoFile`**
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### height
|
||||||
|
|
||||||
|
• **height**: `number`
|
||||||
|
|
||||||
|
The height of the photo, in pixels.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:62](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L62)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### isMirrored
|
||||||
|
|
||||||
|
• **isMirrored**: `boolean`
|
||||||
|
|
||||||
|
Whether this photo is mirrored (selfies) or not.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:76](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L76)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### isRawPhoto
|
||||||
|
|
||||||
|
• **isRawPhoto**: `boolean`
|
||||||
|
|
||||||
|
Whether this photo is in RAW format or not.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:66](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L66)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### metadata
|
||||||
|
|
||||||
|
• `Optional` **metadata**: `Object`
|
||||||
|
|
||||||
|
Metadata information describing the captured image. (iOS only)
|
||||||
|
|
||||||
|
**`See`**
|
||||||
|
|
||||||
|
[AVCapturePhoto.metadata](https://developer.apple.com/documentation/avfoundation/avcapturephoto/2873982-metadata)
|
||||||
|
|
||||||
|
**`Platform`**
|
||||||
|
|
||||||
|
iOS
|
||||||
|
|
||||||
|
#### Type declaration
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :------ | :------ | :------ |
|
||||||
|
| `DPIHeight` | `number` | **`Platform`** iOS |
|
||||||
|
| `DPIWidth` | `number` | **`Platform`** iOS |
|
||||||
|
| `Orientation` | `number` | Orientation of the EXIF Image. * 1 = 0 degrees: the correct orientation, no adjustment is required. * 2 = 0 degrees, mirrored: image has been flipped back-to-front. * 3 = 180 degrees: image is upside down. * 4 = 180 degrees, mirrored: image has been flipped back-to-front and is upside down. * 5 = 90 degrees: image has been flipped back-to-front and is on its side. * 6 = 90 degrees, mirrored: image is on its side. * 7 = 270 degrees: image has been flipped back-to-front and is on its far side. * 8 = 270 degrees, mirrored: image is on its far side. |
|
||||||
|
| `{Exif}` | { `ApertureValue`: `number` ; `BrightnessValue`: `number` ; `ColorSpace`: `number` ; `DateTimeDigitized`: `string` ; `DateTimeOriginal`: `string` ; `ExifVersion`: `string` ; `ExposureBiasValue`: `number` ; `ExposureMode`: `number` ; `ExposureProgram`: `number` ; `ExposureTime`: `number` ; `FNumber`: `number` ; `Flash`: `number` ; `FocalLenIn35mmFilm`: `number` ; `FocalLength`: `number` ; `ISOSpeedRatings`: `number`[] ; `LensMake`: `string` ; `LensModel`: `string` ; `LensSpecification`: `number`[] ; `MeteringMode`: `number` ; `OffsetTime`: `string` ; `OffsetTimeDigitized`: `string` ; `OffsetTimeOriginal`: `string` ; `PixelXDimension`: `number` ; `PixelYDimension`: `number` ; `SceneType`: `number` ; `SensingMethod`: `number` ; `ShutterSpeedValue`: `number` ; `SubjectArea`: `number`[] ; `SubsecTimeDigitized`: `string` ; `SubsecTimeOriginal`: `string` ; `WhiteBalance`: `number` } | - |
|
||||||
|
| `{Exif}.ApertureValue` | `number` | - |
|
||||||
|
| `{Exif}.BrightnessValue` | `number` | - |
|
||||||
|
| `{Exif}.ColorSpace` | `number` | - |
|
||||||
|
| `{Exif}.DateTimeDigitized` | `string` | - |
|
||||||
|
| `{Exif}.DateTimeOriginal` | `string` | - |
|
||||||
|
| `{Exif}.ExifVersion` | `string` | - |
|
||||||
|
| `{Exif}.ExposureBiasValue` | `number` | - |
|
||||||
|
| `{Exif}.ExposureMode` | `number` | - |
|
||||||
|
| `{Exif}.ExposureProgram` | `number` | - |
|
||||||
|
| `{Exif}.ExposureTime` | `number` | - |
|
||||||
|
| `{Exif}.FNumber` | `number` | - |
|
||||||
|
| `{Exif}.Flash` | `number` | - |
|
||||||
|
| `{Exif}.FocalLenIn35mmFilm` | `number` | - |
|
||||||
|
| `{Exif}.FocalLength` | `number` | - |
|
||||||
|
| `{Exif}.ISOSpeedRatings` | `number`[] | - |
|
||||||
|
| `{Exif}.LensMake` | `string` | - |
|
||||||
|
| `{Exif}.LensModel` | `string` | - |
|
||||||
|
| `{Exif}.LensSpecification` | `number`[] | - |
|
||||||
|
| `{Exif}.MeteringMode` | `number` | - |
|
||||||
|
| `{Exif}.OffsetTime` | `string` | - |
|
||||||
|
| `{Exif}.OffsetTimeDigitized` | `string` | - |
|
||||||
|
| `{Exif}.OffsetTimeOriginal` | `string` | - |
|
||||||
|
| `{Exif}.PixelXDimension` | `number` | - |
|
||||||
|
| `{Exif}.PixelYDimension` | `number` | - |
|
||||||
|
| `{Exif}.SceneType` | `number` | - |
|
||||||
|
| `{Exif}.SensingMethod` | `number` | - |
|
||||||
|
| `{Exif}.ShutterSpeedValue` | `number` | - |
|
||||||
|
| `{Exif}.SubjectArea` | `number`[] | - |
|
||||||
|
| `{Exif}.SubsecTimeDigitized` | `string` | - |
|
||||||
|
| `{Exif}.SubsecTimeOriginal` | `string` | - |
|
||||||
|
| `{Exif}.WhiteBalance` | `number` | - |
|
||||||
|
| `{MakerApple}?` | `Record`<`string`, `unknown`\> | Represents any data Apple cameras write to the metadata **`Platform`** iOS |
|
||||||
|
| `{TIFF}` | { `DateTime`: `string` ; `HostComputer?`: `string` ; `Make`: `string` ; `Model`: `string` ; `ResolutionUnit`: `number` ; `Software`: `string` ; `XResolution`: `number` ; `YResolution`: `number` } | - |
|
||||||
|
| `{TIFF}.DateTime` | `string` | - |
|
||||||
|
| `{TIFF}.HostComputer?` | `string` | **`Platform`** iOS |
|
||||||
|
| `{TIFF}.Make` | `string` | - |
|
||||||
|
| `{TIFF}.Model` | `string` | - |
|
||||||
|
| `{TIFF}.ResolutionUnit` | `number` | - |
|
||||||
|
| `{TIFF}.Software` | `string` | - |
|
||||||
|
| `{TIFF}.XResolution` | `number` | - |
|
||||||
|
| `{TIFF}.YResolution` | `number` | - |
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:85](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L85)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### orientation
|
||||||
|
|
||||||
|
• **orientation**: `Orientation`
|
||||||
|
|
||||||
|
Display orientation of the photo, relative to the Camera's sensor orientation.
|
||||||
|
|
||||||
|
Note that Camera sensors are landscape, so e.g. "portrait" photos will have a value of "landscape-left", etc.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:72](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L72)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### path
|
||||||
|
|
||||||
|
• **path**: `string`
|
||||||
|
|
||||||
|
The path of the file.
|
||||||
|
|
||||||
|
* **Note:** If you want to consume this file (e.g. for displaying it in an `<Image>` component), you might have to add the `file://` prefix.
|
||||||
|
|
||||||
|
* **Note:** This file might get deleted once the app closes because it lives in the temp directory.
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
[TemporaryFile](TemporaryFile.md).[path](TemporaryFile.md#path)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[TemporaryFile.ts:12](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/TemporaryFile.ts#L12)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### thumbnail
|
||||||
|
|
||||||
|
• `Optional` **thumbnail**: `Record`<`string`, `unknown`\>
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:77](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L77)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### width
|
||||||
|
|
||||||
|
• **width**: `number`
|
||||||
|
|
||||||
|
The width of the photo, in pixels.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:58](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L58)
|
32
docs/docs/api/interfaces/Point.md
Normal file
32
docs/docs/api/interfaces/Point.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
id: "Point"
|
||||||
|
title: "Point"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
Represents a Point in a 2 dimensional coordinate system.
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### x
|
||||||
|
|
||||||
|
• **x**: `number`
|
||||||
|
|
||||||
|
The X coordinate of this Point. (double)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Point.ts:8](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Point.ts#L8)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### y
|
||||||
|
|
||||||
|
• **y**: `number`
|
||||||
|
|
||||||
|
The Y coordinate of this Point. (double)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Point.ts:12](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/Point.ts#L12)
|
96
docs/docs/api/interfaces/RecordVideoOptions.md
Normal file
96
docs/docs/api/interfaces/RecordVideoOptions.md
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
---
|
||||||
|
id: "RecordVideoOptions"
|
||||||
|
title: "RecordVideoOptions"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### fileType
|
||||||
|
|
||||||
|
• `Optional` **fileType**: ``"mov"`` \| ``"mp4"``
|
||||||
|
|
||||||
|
Specifies the output file type to record videos into.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[VideoFile.ts:12](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/VideoFile.ts#L12)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### flash
|
||||||
|
|
||||||
|
• `Optional` **flash**: ``"off"`` \| ``"auto"`` \| ``"on"``
|
||||||
|
|
||||||
|
Set the video flash mode. Natively, this just enables the torch while recording.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[VideoFile.ts:8](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/VideoFile.ts#L8)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### onRecordingError
|
||||||
|
|
||||||
|
• **onRecordingError**: (`error`: [`CameraCaptureError`](../classes/CameraCaptureError.md)) => `void`
|
||||||
|
|
||||||
|
#### Type declaration
|
||||||
|
|
||||||
|
▸ (`error`): `void`
|
||||||
|
|
||||||
|
Called when there was an unexpected runtime error while recording the video.
|
||||||
|
|
||||||
|
##### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `error` | [`CameraCaptureError`](../classes/CameraCaptureError.md) |
|
||||||
|
|
||||||
|
##### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[VideoFile.ts:16](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/VideoFile.ts#L16)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### onRecordingFinished
|
||||||
|
|
||||||
|
• **onRecordingFinished**: (`video`: [`VideoFile`](VideoFile.md)) => `void`
|
||||||
|
|
||||||
|
#### Type declaration
|
||||||
|
|
||||||
|
▸ (`video`): `void`
|
||||||
|
|
||||||
|
Called when the recording has been successfully saved to file.
|
||||||
|
|
||||||
|
##### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------ | :------ |
|
||||||
|
| `video` | [`VideoFile`](VideoFile.md) |
|
||||||
|
|
||||||
|
##### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[VideoFile.ts:20](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/VideoFile.ts#L20)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### videoCodec
|
||||||
|
|
||||||
|
• `Optional` **videoCodec**: ``"h265"``
|
||||||
|
|
||||||
|
The Video Codec to record in.
|
||||||
|
- `h264`: Widely supported, but might be less efficient, especially with larger sizes or framerates.
|
||||||
|
- `h265`: The HEVC (High-Efficient-Video-Codec) for higher efficient video recordings.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[VideoFile.ts:26](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/VideoFile.ts#L26)
|
111
docs/docs/api/interfaces/TakePhotoOptions.md
Normal file
111
docs/docs/api/interfaces/TakePhotoOptions.md
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
---
|
||||||
|
id: "TakePhotoOptions"
|
||||||
|
title: "TakePhotoOptions"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### enableAutoDistortionCorrection
|
||||||
|
|
||||||
|
• `Optional` **enableAutoDistortionCorrection**: `boolean`
|
||||||
|
|
||||||
|
Specifies whether the photo output should use content aware distortion correction on this photo request.
|
||||||
|
For example, the algorithm may not apply correction to faces in the center of a photo, but may apply it to faces near the photo’s edges.
|
||||||
|
|
||||||
|
**`Platform`**
|
||||||
|
|
||||||
|
iOS
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:40](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L40)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### enableAutoRedEyeReduction
|
||||||
|
|
||||||
|
• `Optional` **enableAutoRedEyeReduction**: `boolean`
|
||||||
|
|
||||||
|
Specifies whether red-eye reduction should be applied automatically on flash captures.
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:26](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L26)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### enableAutoStabilization
|
||||||
|
|
||||||
|
• `Optional` **enableAutoStabilization**: `boolean`
|
||||||
|
|
||||||
|
Indicates whether still image stabilization will be employed when capturing the photo
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:32](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L32)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### enableShutterSound
|
||||||
|
|
||||||
|
• `Optional` **enableShutterSound**: `boolean`
|
||||||
|
|
||||||
|
Whether to play the default shutter "click" sound when taking a picture or not.
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
true
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:46](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L46)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### flash
|
||||||
|
|
||||||
|
• `Optional` **flash**: ``"off"`` \| ``"auto"`` \| ``"on"``
|
||||||
|
|
||||||
|
Whether the Flash should be enabled or disabled
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
"auto"
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:20](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L20)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### qualityPrioritization
|
||||||
|
|
||||||
|
• `Optional` **qualityPrioritization**: ``"quality"`` \| ``"balanced"`` \| ``"speed"``
|
||||||
|
|
||||||
|
Indicates how photo quality should be prioritized against speed.
|
||||||
|
|
||||||
|
* `"quality"` Indicates that photo quality is paramount, even at the expense of shot-to-shot time
|
||||||
|
* `"balanced"` Indicates that photo quality and speed of delivery are balanced in priority
|
||||||
|
* `"speed"` Indicates that speed of photo delivery is most important, even at the expense of quality
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
"balanced"
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[PhotoFile.ts:14](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/PhotoFile.ts#L14)
|
62
docs/docs/api/interfaces/TakeSnapshotOptions.md
Normal file
62
docs/docs/api/interfaces/TakeSnapshotOptions.md
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
id: "TakeSnapshotOptions"
|
||||||
|
title: "TakeSnapshotOptions"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### flash
|
||||||
|
|
||||||
|
• `Optional` **flash**: ``"off"`` \| ``"on"``
|
||||||
|
|
||||||
|
Whether the Flash should be enabled or disabled
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
"off"
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Snapshot.ts:16](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Snapshot.ts#L16)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### quality
|
||||||
|
|
||||||
|
• `Optional` **quality**: `number`
|
||||||
|
|
||||||
|
Specifies the quality of the JPEG. (0-100, where 100 means best quality (no compression))
|
||||||
|
|
||||||
|
It is recommended to set this to `90` or even `80`, since the user probably won't notice a difference between `90`/`80` and `100`.
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
100
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Snapshot.ts:9](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Snapshot.ts#L9)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### skipMetadata
|
||||||
|
|
||||||
|
• `Optional` **skipMetadata**: `boolean`
|
||||||
|
|
||||||
|
When set to `true`, metadata reading and mapping will be skipped. ([`metadata`](PhotoFile.md#metadata) will be `null`)
|
||||||
|
|
||||||
|
This might result in a faster capture, as metadata reading and mapping requires File IO.
|
||||||
|
|
||||||
|
**`Default`**
|
||||||
|
|
||||||
|
false
|
||||||
|
|
||||||
|
**`Platform`**
|
||||||
|
|
||||||
|
Android
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[Snapshot.ts:27](https://github.com/mrousavy/react-native-vision-camera/blob/c2fb5bf1/src/Snapshot.ts#L27)
|
32
docs/docs/api/interfaces/TemporaryFile.md
Normal file
32
docs/docs/api/interfaces/TemporaryFile.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
id: "TemporaryFile"
|
||||||
|
title: "TemporaryFile"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
Represents a temporary file in the local filesystem.
|
||||||
|
|
||||||
|
## Hierarchy
|
||||||
|
|
||||||
|
- **`TemporaryFile`**
|
||||||
|
|
||||||
|
↳ [`PhotoFile`](PhotoFile.md)
|
||||||
|
|
||||||
|
↳ [`VideoFile`](VideoFile.md)
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### path
|
||||||
|
|
||||||
|
• **path**: `string`
|
||||||
|
|
||||||
|
The path of the file.
|
||||||
|
|
||||||
|
* **Note:** If you want to consume this file (e.g. for displaying it in an `<Image>` component), you might have to add the `file://` prefix.
|
||||||
|
|
||||||
|
* **Note:** This file might get deleted once the app closes because it lives in the temp directory.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[TemporaryFile.ts:12](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/TemporaryFile.ts#L12)
|
48
docs/docs/api/interfaces/VideoFile.md
Normal file
48
docs/docs/api/interfaces/VideoFile.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
id: "VideoFile"
|
||||||
|
title: "VideoFile"
|
||||||
|
sidebar_position: 0
|
||||||
|
custom_edit_url: null
|
||||||
|
---
|
||||||
|
|
||||||
|
Represents a Video taken by the Camera written to the local filesystem.
|
||||||
|
|
||||||
|
Related: [`Camera.startRecording()`](../classes/Camera.md#startrecording), [`Camera.stopRecording()`](../classes/Camera.md#stoprecording)
|
||||||
|
|
||||||
|
## Hierarchy
|
||||||
|
|
||||||
|
- [`TemporaryFile`](TemporaryFile.md)
|
||||||
|
|
||||||
|
↳ **`VideoFile`**
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### duration
|
||||||
|
|
||||||
|
• **duration**: `number`
|
||||||
|
|
||||||
|
Represents the duration of the video, in seconds.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[VideoFile.ts:38](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/VideoFile.ts#L38)
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
### path
|
||||||
|
|
||||||
|
• **path**: `string`
|
||||||
|
|
||||||
|
The path of the file.
|
||||||
|
|
||||||
|
* **Note:** If you want to consume this file (e.g. for displaying it in an `<Image>` component), you might have to add the `file://` prefix.
|
||||||
|
|
||||||
|
* **Note:** This file might get deleted once the app closes because it lives in the temp directory.
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
[TemporaryFile](TemporaryFile.md).[path](TemporaryFile.md#path)
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[TemporaryFile.ts:12](https://github.com/mrousavy/react-native-vision-camera/blob/c66550ed/package/src/TemporaryFile.ts#L12)
|
2
docs/docs/api/interfaces/_category_.yml
Normal file
2
docs/docs/api/interfaces/_category_.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
label: "Interfaces"
|
||||||
|
position: 4
|
@ -50,7 +50,7 @@ The `CameraError` type is a baseclass type for all other errors and provides the
|
|||||||
* `cause.cause?`: The cause that caused this cause. (Recursive) (Optional)
|
* `cause.cause?`: The cause that caused this cause. (Recursive) (Optional)
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
See [the `CameraError.ts` file](https://github.com/mrousavy/react-native-vision-camera/blob/main/src/CameraError.ts) for a list of all possible error codes
|
See [the `CameraError.ts` file](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/src/CameraError.ts) for a list of all possible error codes
|
||||||
:::
|
:::
|
||||||
|
|
||||||
### Runtime Errors
|
### Runtime Errors
|
||||||
|
@ -203,13 +203,11 @@ If you are using the [react-hooks ESLint plugin](https://www.npmjs.com/package/e
|
|||||||
|
|
||||||
**Frame Processors** are JS functions that will be **workletized** using [react-native-worklets-core](https://github.com/margelo/react-native-worklets-core). They are created on a **parallel camera thread** using a separate JavaScript Runtime (_"VisionCamera JS-Runtime"_) and are **invoked synchronously** (using JSI) without ever going over the bridge. In a **Frame Processor** you can write normal JS code, call back to the React-JS Thread (e.g. `setState`), use [Shared Values](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/shared-values/) and call **Frame Processor Plugins**.
|
**Frame Processors** are JS functions that will be **workletized** using [react-native-worklets-core](https://github.com/margelo/react-native-worklets-core). They are created on a **parallel camera thread** using a separate JavaScript Runtime (_"VisionCamera JS-Runtime"_) and are **invoked synchronously** (using JSI) without ever going over the bridge. In a **Frame Processor** you can write normal JS code, call back to the React-JS Thread (e.g. `setState`), use [Shared Values](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/shared-values/) and call **Frame Processor Plugins**.
|
||||||
|
|
||||||
> See [**the example Frame Processor**](https://github.com/mrousavy/react-native-vision-camera/blob/cf68a4c6476d085ec48fc424a53a96962e0c33f9/example/src/CameraPage.tsx#L199-L203)
|
|
||||||
|
|
||||||
#### Frame Processor Plugins
|
#### Frame Processor Plugins
|
||||||
|
|
||||||
**Frame Processor Plugins** are native functions (written in Objective-C, Swift, C++, Java or Kotlin) that are injected into the VisionCamera JS-Runtime. They can be **synchronously called** from your JS Frame Processors (using JSI) without ever going over the bridge. Because VisionCamera provides an easy-to-use plugin API, you can easily create a **Frame Processor Plugin** yourself. Some examples include [Barcode Scanning](https://developers.google.com/ml-kit/vision/barcode-scanning), [Face Detection](https://developers.google.com/ml-kit/vision/face-detection), [Image Labeling](https://developers.google.com/ml-kit/vision/image-labeling), [Text Recognition](https://developers.google.com/ml-kit/vision/text-recognition) and more.
|
**Frame Processor Plugins** are native functions (written in Objective-C, Swift, C++, Java or Kotlin) that are injected into the VisionCamera JS-Runtime. They can be **synchronously called** from your JS Frame Processors (using JSI) without ever going over the bridge. Because VisionCamera provides an easy-to-use plugin API, you can easily create a **Frame Processor Plugin** yourself. Some examples include [Barcode Scanning](https://developers.google.com/ml-kit/vision/barcode-scanning), [Face Detection](https://developers.google.com/ml-kit/vision/face-detection), [Image Labeling](https://developers.google.com/ml-kit/vision/image-labeling), [Text Recognition](https://developers.google.com/ml-kit/vision/text-recognition) and more.
|
||||||
|
|
||||||
> Learn how to [**create Frame Processor Plugins**](frame-processors-plugins-overview), or check out the [**example Frame Processor Plugin for iOS**](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/ios/Frame%20Processor%20Plugins/Example%20Plugin%20(Swift)/ExamplePluginSwift.swift) or [**Android**](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/android/app/src/main/java/com/mrousavy/camera/example/ExampleFrameProcessorPlugin.java).
|
> Learn how to [**create Frame Processor Plugins**](frame-processors-plugins-overview), or check out the [**example Frame Processor Plugin for iOS**](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/ios/Frame%20Processor%20Plugins/Example%20Plugin%20(Swift)/ExamplePluginSwift.swift) or [**Android**](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/android/app/src/main/java/com/mrousavy/camera/example/ExampleFrameProcessorPlugin.java).
|
||||||
|
|
||||||
#### The `Frame` object
|
#### The `Frame` object
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ public Object callback(Frame frame, Object[] params) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Which returns a [`Frame`](https://github.com/mrousavy/react-native-vision-camera/blob/main/src/Frame.ts) in JS:
|
Which returns a [`Frame`](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/src/Frame.ts) in JS:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const frameProcessor = useFrameProcessor((frame) => {
|
const frameProcessor = useFrameProcessor((frame) => {
|
||||||
@ -192,9 +192,9 @@ Your Frame Processor Plugins have to be fast. Use the FPS Graph (`enableFpsGraph
|
|||||||
|
|
||||||
#### 🚀 Create your first Frame Processor Plugin for [iOS](frame-processors-plugins-ios) or [Android](frame-processors-plugins-android)!
|
#### 🚀 Create your first Frame Processor Plugin for [iOS](frame-processors-plugins-ios) or [Android](frame-processors-plugins-android)!
|
||||||
|
|
||||||
[1]: https://github.com/mrousavy/react-native-vision-camera/blob/main/src/Frame.ts
|
[1]: https://github.com/mrousavy/react-native-vision-camera/blob/main/package/src/Frame.ts
|
||||||
[2]: https://github.com/mrousavy/react-native-vision-camera/blob/main/ios/Frame%20Processor/Frame.h
|
[2]: https://github.com/mrousavy/react-native-vision-camera/blob/main/package/ios/Frame%20Processor/Frame.h
|
||||||
[3]: https://github.com/mrousavy/react-native-vision-camera/blob/main/android/src/main/java/com/mrousavy/camera/frameprocessor/Frame.java
|
[3]: https://github.com/mrousavy/react-native-vision-camera/blob/main/package/android/src/main/java/com/mrousavy/camera/frameprocessor/Frame.java
|
||||||
[4]: https://github.com/facebook/react-native/blob/9a43eac7a32a6ba3164a048960101022a92fcd5a/React/Base/RCTBridgeModule.h#L20-L24
|
[4]: https://github.com/facebook/react-native/blob/9a43eac7a32a6ba3164a048960101022a92fcd5a/React/Base/RCTBridgeModule.h#L20-L24
|
||||||
[5]: https://developer.apple.com/documentation/coremedia/cmsamplebuffer
|
[5]: https://developer.apple.com/documentation/coremedia/cmsamplebuffer
|
||||||
[6]: https://developer.android.com/reference/androidx/camera/core/ImageProxy
|
[6]: https://developer.android.com/reference/androidx/camera/core/ImageProxy
|
||||||
|
@ -72,7 +72,7 @@ public class FaceDetectorFrameProcessorPlugin extends FrameProcessorPlugin {
|
|||||||
The Frame Processor Plugin will be exposed to JS through the `VisionCameraProxy` object. In this case, it would be `VisionCameraProxy.getFrameProcessorPlugin("detectFaces")`.
|
The Frame Processor Plugin will be exposed to JS through the `VisionCameraProxy` object. In this case, it would be `VisionCameraProxy.getFrameProcessorPlugin("detectFaces")`.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
4. **Implement your Frame Processing.** See the [Example Plugin (Java)](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/android/app/src/main/java/com/mrousavy/camera/example/ExampleFrameProcessorPlugin.java) for reference.
|
4. **Implement your Frame Processing.** See the [Example Plugin (Java)](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/android/app/src/main/java/com/mrousavy/camera/example/ExampleFrameProcessorPlugin.java) for reference.
|
||||||
5. Create a new Java file which registers the Frame Processor Plugin in a React Package, for the Face Detector plugin this file will be called `FaceDetectorFrameProcessorPluginPackage.java`:
|
5. Create a new Java file which registers the Frame Processor Plugin in a React Package, for the Face Detector plugin this file will be called `FaceDetectorFrameProcessorPluginPackage.java`:
|
||||||
|
|
||||||
```java {12}
|
```java {12}
|
||||||
@ -137,7 +137,7 @@ class FaceDetectorFrameProcessorPlugin: FrameProcessorPlugin() {
|
|||||||
The Frame Processor Plugin will be exposed to JS through the `VisionCameraProxy` object. In this case, it would be `VisionCameraProxy.getFrameProcessorPlugin("detectFaces")`.
|
The Frame Processor Plugin will be exposed to JS through the `VisionCameraProxy` object. In this case, it would be `VisionCameraProxy.getFrameProcessorPlugin("detectFaces")`.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
4. **Implement your Frame Processing.** See the [Example Plugin (Java)](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/android/app/src/main/java/com/mrousavy/camera/example/ExampleFrameProcessorPlugin.java) for reference.
|
4. **Implement your Frame Processing.** See the [Example Plugin (Java)](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/android/app/src/main/java/com/mrousavy/camera/example/ExampleFrameProcessorPlugin.java) for reference.
|
||||||
5. Create a new Kotlin file which registers the Frame Processor Plugin in a React Package, for the Face Detector plugin this file will be called `FaceDetectorFrameProcessorPluginPackage.kt`:
|
5. Create a new Kotlin file which registers the Frame Processor Plugin in a React Package, for the Face Detector plugin this file will be called `FaceDetectorFrameProcessorPluginPackage.kt`:
|
||||||
|
|
||||||
```kotlin {9}
|
```kotlin {9}
|
||||||
|
@ -77,7 +77,7 @@ For reference see the [CLI's docs](https://github.com/mateusz1913/vision-camera-
|
|||||||
The Frame Processor Plugin will be exposed to JS through the `VisionCameraProxy` object. In this case, it would be `VisionCameraProxy.getFrameProcessorPlugin("detectFaces")`.
|
The Frame Processor Plugin will be exposed to JS through the `VisionCameraProxy` object. In this case, it would be `VisionCameraProxy.getFrameProcessorPlugin("detectFaces")`.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
4. **Implement your Frame Processing.** See the [Example Plugin (Objective-C)](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/ios/Frame%20Processor%20Plugins/Example%20Plugin%20%28Objective%2DC%29) for reference.
|
4. **Implement your Frame Processing.** See the [Example Plugin (Objective-C)](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/ios/Frame%20Processor%20Plugins/Example%20Plugin%20%28Objective%2DC%29) for reference.
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="swift">
|
<TabItem value="swift">
|
||||||
@ -132,7 +132,7 @@ public class FaceDetectorFrameProcessorPlugin: FrameProcessorPlugin {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
7. **Implement your frame processing.** See [Example Plugin (Swift)](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/ios/Frame%20Processor%20Plugins/Example%20Plugin%20%28Swift%29) for reference.
|
7. **Implement your frame processing.** See [Example Plugin (Swift)](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/ios/Frame%20Processor%20Plugins/Example%20Plugin%20%28Swift%29) for reference.
|
||||||
|
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
@ -16,7 +16,7 @@ The Camera's `isActive` property can be used to _pause_ the session (`isActive={
|
|||||||
|
|
||||||
For example, you want to **pause the camera** when the user **navigates to another page** or **minimizes the app** since otherwise the camera continues to run in the background without the user seeing it, causing **significant battery drain**. Also, on iOS a green dot indicates the user that the camera is still active, possibly causing the user to raise privacy concerns. (🔗 See ["About the orange and green indicators in your iPhone status bar"](https://support.apple.com/en-us/HT211876))
|
For example, you want to **pause the camera** when the user **navigates to another page** or **minimizes the app** since otherwise the camera continues to run in the background without the user seeing it, causing **significant battery drain**. Also, on iOS a green dot indicates the user that the camera is still active, possibly causing the user to raise privacy concerns. (🔗 See ["About the orange and green indicators in your iPhone status bar"](https://support.apple.com/en-us/HT211876))
|
||||||
|
|
||||||
This example demonstrates how you could pause the camera stream once the app goes into background using a [custom `useIsAppForeground` hook](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/src/hooks/useIsForeground.ts):
|
This example demonstrates how you could pause the camera stream once the app goes into background using a [custom `useIsAppForeground` hook](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/src/hooks/useIsForeground.ts):
|
||||||
|
|
||||||
```tsx
|
```tsx
|
||||||
function App() {
|
function App() {
|
||||||
|
@ -45,7 +45,7 @@ module.exports = {
|
|||||||
inside `vision-camera.e2e.js` export the mocked modules.
|
inside `vision-camera.e2e.js` export the mocked modules.
|
||||||
|
|
||||||
In this example, several functions of the modules `Camera` and `sortDevices` are mocked.
|
In this example, several functions of the modules `Camera` and `sortDevices` are mocked.
|
||||||
Define your mocks following the [original definitions](https://github.com/mrousavy/react-native-vision-camera/tree/main/src).
|
Define your mocks following the [original definitions](https://github.com/mrousavy/react-native-vision-camera/tree/main/package/src).
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// vision-camera.js
|
// vision-camera.js
|
||||||
|
@ -69,7 +69,7 @@ Before opening an issue, make sure you try the following:
|
|||||||
yarn # or `npm i`
|
yarn # or `npm i`
|
||||||
```
|
```
|
||||||
4. Make sure you have installed the [Android NDK](https://developer.android.com/ndk).
|
4. Make sure you have installed the [Android NDK](https://developer.android.com/ndk).
|
||||||
5. Make sure your minimum SDK version is **21 or higher**, and target SDK version is **33 or higher**. See [the example's `build.gradle`](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/android/build.gradle#L5-L10) for reference.
|
5. Make sure your minimum SDK version is **21 or higher**, and target SDK version is **33 or higher**. See [the example's `build.gradle`](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/android/build.gradle#L5-L10) for reference.
|
||||||
1. Open your `build.gradle`
|
1. Open your `build.gradle`
|
||||||
2. Set `buildToolsVersion` to `33.0.0` or higher
|
2. Set `buildToolsVersion` to `33.0.0` or higher
|
||||||
3. Set `compileSdkVersion` to `33` or higher
|
3. Set `compileSdkVersion` to `33` or higher
|
||||||
@ -103,4 +103,4 @@ Before opening an issue, make sure you try the following:
|
|||||||
|
|
||||||
## Issues
|
## Issues
|
||||||
|
|
||||||
If nothing has helped so far, try browsing the [GitHub issues](https://github.com/mrousavy/react-native-vision-camera/issues?q=is%3Aissue). If your issue doesn't exist, [create a new one](https://github.com/mrousavy/react-native-vision-camera/issues/new/choose). Make sure to fill out the template and include as many details as possible. Also try to reproduce the issue in the [example app](https://github.com/mrousavy/react-native-vision-camera/blob/main/example).
|
If nothing has helped so far, try browsing the [GitHub issues](https://github.com/mrousavy/react-native-vision-camera/issues?q=is%3Aissue). If your issue doesn't exist, [create a new one](https://github.com/mrousavy/react-native-vision-camera/issues/new/choose). Make sure to fill out the template and include as many details as possible. Also try to reproduce the issue in the [example app](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example).
|
||||||
|
@ -98,7 +98,7 @@ A Camera's `zoom` property is represented in a **logarithmic scale**. That means
|
|||||||
|
|
||||||
### Pinch-to-zoom
|
### Pinch-to-zoom
|
||||||
|
|
||||||
The above example only demonstrates how to animate the `zoom` property. To actually implement pinch-to-zoom or pan-to-zoom, take a look at the [VisionCamera example app](https://github.com/mrousavy/react-native-vision-camera/tree/main/example), the pinch-to-zoom gesture can be found [here](https://github.com/mrousavy/react-native-vision-camera/blob/main/example/src/views/CaptureButton.tsx#L189-L208), and the pan-to-zoom gesture can be found [here](https://github.com/mrousavy/react-native-vision-camera/blob/d8551792e97eaa6fa768f54059ffce054bf748d9/example/src/views/CaptureButton.tsx#L185-L205). They implement a real world use-case, where the maximum zoom value is clamped to a realistic value, and the zoom responds very gracefully by using a logarithmic scale.
|
The above example only demonstrates how to animate the `zoom` property. To actually implement pinch-to-zoom or pan-to-zoom, take a look at the [VisionCamera example app](https://github.com/mrousavy/react-native-vision-camera/tree/main/example), the pinch-to-zoom gesture can be found [here](https://github.com/mrousavy/react-native-vision-camera/blob/main/package/example/src/views/CaptureButton.tsx#L189-L208), and the pan-to-zoom gesture can be found [here](https://github.com/mrousavy/react-native-vision-camera/blob/d8551792e97eaa6fa768f54059ffce054bf748d9/example/src/views/CaptureButton.tsx#L185-L205). They implement a real world use-case, where the maximum zoom value is clamped to a realistic value, and the zoom responds very gracefully by using a logarithmic scale.
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ module.exports = {
|
|||||||
position: 'left'
|
position: 'left'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: 'https://github.com/mrousavy/react-native-vision-camera/tree/main/example',
|
href: 'https://github.com/mrousavy/react-native-vision-camera/tree/main/package/example',
|
||||||
label: 'Example App',
|
label: 'Example App',
|
||||||
position: 'left'
|
position: 'left'
|
||||||
},
|
},
|
||||||
@ -62,7 +62,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Example App',
|
label: 'Example App',
|
||||||
href: 'https://github.com/mrousavy/react-native-vision-camera/tree/main/example',
|
href: 'https://github.com/mrousavy/react-native-vision-camera/tree/main/package/example',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -156,9 +156,9 @@ module.exports = {
|
|||||||
'docusaurus-plugin-typedoc',
|
'docusaurus-plugin-typedoc',
|
||||||
{
|
{
|
||||||
name: 'VisionCamera',
|
name: 'VisionCamera',
|
||||||
entryPoints: ['../src'],
|
entryPoints: ['../package/src'],
|
||||||
exclude: "../src/index.ts",
|
exclude: "../package/src/index.ts",
|
||||||
tsconfig: '../tsconfig.json',
|
tsconfig: '../package/tsconfig.json',
|
||||||
watch: process.env.TYPEDOC_WATCH,
|
watch: process.env.TYPEDOC_WATCH,
|
||||||
excludePrivate: true,
|
excludePrivate: true,
|
||||||
excludeProtected: true,
|
excludeProtected: true,
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"postinstall": "yarn install --cwd ..",
|
|
||||||
"docusaurus": "docusaurus",
|
"docusaurus": "docusaurus",
|
||||||
"start": "TYPEDOC_WATCH=true docusaurus start",
|
"start": "TYPEDOC_WATCH=true docusaurus start",
|
||||||
"build": "docusaurus build",
|
"build": "docusaurus build",
|
||||||
|
@ -3155,15 +3155,10 @@ caniuse-api@^3.0.0:
|
|||||||
lodash.memoize "^4.1.2"
|
lodash.memoize "^4.1.2"
|
||||||
lodash.uniq "^4.5.0"
|
lodash.uniq "^4.5.0"
|
||||||
|
|
||||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286:
|
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001449:
|
||||||
version "1.0.30001295"
|
version "1.0.30001525"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001295.tgz#68a60f8f0664f342b2835c5d8898b4faea7b3d51"
|
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz"
|
||||||
integrity sha512-lSP16vcyC0FEy0R4ECc9duSPoKoZy+YkpGkue9G4D81OfPnliopaZrU10+qtPdT8PbGXad/PNx43TIQrOmJZSQ==
|
integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==
|
||||||
|
|
||||||
caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001449:
|
|
||||||
version "1.0.30001460"
|
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz#31d2e26f0a2309860ed3eff154e03890d9d851a7"
|
|
||||||
integrity sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==
|
|
||||||
|
|
||||||
ccount@^1.0.0:
|
ccount@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
|
70
package/.gitignore
vendored
Normal file
70
package/.gitignore
vendored
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
# OSX
|
||||||
|
#
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# XDE
|
||||||
|
.expo/
|
||||||
|
|
||||||
|
# VSCode
|
||||||
|
jsconfig.json
|
||||||
|
|
||||||
|
# Xcode
|
||||||
|
#
|
||||||
|
build/
|
||||||
|
*.pbxuser
|
||||||
|
!default.pbxuser
|
||||||
|
*.mode1v3
|
||||||
|
!default.mode1v3
|
||||||
|
*.mode2v3
|
||||||
|
!default.mode2v3
|
||||||
|
*.perspectivev3
|
||||||
|
!default.perspectivev3
|
||||||
|
xcuserdata
|
||||||
|
*.xccheckout
|
||||||
|
*.moved-aside
|
||||||
|
DerivedData
|
||||||
|
*.hmap
|
||||||
|
*.ipa
|
||||||
|
*.xcuserstate
|
||||||
|
project.xcworkspace
|
||||||
|
|
||||||
|
# Android/IJ
|
||||||
|
#
|
||||||
|
.idea
|
||||||
|
.gradle
|
||||||
|
local.properties
|
||||||
|
android.iml
|
||||||
|
*.hprof
|
||||||
|
|
||||||
|
# Cocoapods
|
||||||
|
#
|
||||||
|
example/ios/Pods
|
||||||
|
|
||||||
|
# node.js
|
||||||
|
#
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log
|
||||||
|
yarn-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
|
||||||
|
# BUCK
|
||||||
|
buck-out/
|
||||||
|
\.buckd/
|
||||||
|
android/app/libs
|
||||||
|
android/keystores/debug.keystore
|
||||||
|
|
||||||
|
# Expo
|
||||||
|
.expo/*
|
||||||
|
|
||||||
|
# generated by bob
|
||||||
|
lib/
|
||||||
|
|
||||||
|
# we only use yarn
|
||||||
|
package-lock.json
|
||||||
|
|
||||||
|
# TypeDoc/Docusaurus stuff
|
||||||
|
docs/docs/api
|
||||||
|
|
||||||
|
# External native build folder generated in Android Studio 2.2 and later
|
||||||
|
.externalNativeBuild
|
||||||
|
.cxx/
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user