{"id":27977134,"url":"https://github.com/numbersprotocol/preview-camera","last_synced_at":"2025-05-08T01:46:35.221Z","repository":{"id":40391195,"uuid":"481196105","full_name":"numbersprotocol/preview-camera","owner":"numbersprotocol","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-14T08:37:09.000Z","size":365,"stargazers_count":0,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-08T01:46:25.895Z","etag":null,"topics":["capture-cam"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"sultanmyrza/preview-camera","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numbersprotocol.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-13T11:53:27.000Z","updated_at":"2025-03-14T08:28:22.000Z","dependencies_parsed_at":"2023-01-29T17:01:00.343Z","dependency_job_id":null,"html_url":"https://github.com/numbersprotocol/preview-camera","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbersprotocol%2Fpreview-camera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbersprotocol%2Fpreview-camera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbersprotocol%2Fpreview-camera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbersprotocol%2Fpreview-camera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numbersprotocol","download_url":"https://codeload.github.com/numbersprotocol/preview-camera/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252983739,"owners_count":21835762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["capture-cam"],"created_at":"2025-05-08T01:46:34.551Z","updated_at":"2025-05-08T01:46:35.158Z","avatar_url":"https://github.com/numbersprotocol.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @numbersprotocol/preview-camera\n\nPreview Camera Plugin for iOS, Android\n\n## Install\n\n```bash\nnpm install @numbersprotocol/preview-camera\nnpx cap sync\n```\n\n## API\n\n\u003cdocgen-index\u003e\n\n* [`echo(...)`](#echo)\n* [`startPreview()`](#startpreview)\n* [`stopPreview()`](#stoppreview)\n* [`takePhoto()`](#takephoto)\n* [`capturePhoto()`](#capturephoto)\n* [`startRecord()`](#startrecord)\n* [`stopRecord()`](#stoprecord)\n* [`flipCamera()`](#flipcamera)\n* [`getFlashModes()`](#getflashmodes)\n* [`setFlashMode()`](#setflashmode)\n* [`isTorchOn()`](#istorchon)\n* [`enableTorch(...)`](#enabletorch)\n* [`isTorchAvailable()`](#istorchavailable)\n* [`focus(...)`](#focus)\n* [`minAvailableZoom()`](#minavailablezoom)\n* [`maxAvailableZoom()`](#maxavailablezoom)\n* [`zoom(...)`](#zoom)\n* [`setQuality(...)`](#setquality)\n* [`saveFileToUserDevice(...)`](#savefiletouserdevice)\n* [`checkPermissions()`](#checkpermissions)\n* [`requestPermissions()`](#requestpermissions)\n* [`addListener('captureSuccessResult', ...)`](#addlistenercapturesuccessresult-)\n* [`addListener('captureErrorResult', ...)`](#addlistenercaptureerrorresult-)\n* [`addListener('captureVideoFinished', ...)`](#addlistenercapturevideofinished-)\n* [`addListener('capturePhotoFinished', ...)`](#addlistenercapturephotofinished-)\n* [`addListener('accelerometerOrientation', ...)`](#addlisteneraccelerometerorientation-)\n* [`removeAllListeners()`](#removealllisteners)\n* [Interfaces](#interfaces)\n* [Type Aliases](#type-aliases)\n\n\u003c/docgen-index\u003e\n\n\u003cdocgen-api\u003e\n\u003c!--Update the source file JSDoc comments and rerun docgen to update the docs below--\u003e\n\n### echo(...)\n\n```typescript\necho(options: { value: string; }) =\u003e Promise\u003c{ value: string; }\u003e\n```\n\n| Param         | Type                            |\n| ------------- | ------------------------------- |\n| **`options`** | \u003ccode\u003e{ value: string; }\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;{ value: string; }\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### startPreview()\n\n```typescript\nstartPreview() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### stopPreview()\n\n```typescript\nstopPreview() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### takePhoto()\n\n```typescript\ntakePhoto() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### capturePhoto()\n\n```typescript\ncapturePhoto() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### startRecord()\n\n```typescript\nstartRecord() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### stopRecord()\n\n```typescript\nstopRecord() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### flipCamera()\n\n```typescript\nflipCamera() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### getFlashModes()\n\n```typescript\ngetFlashModes() =\u003e Promise\u003cany\u003e\n```\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;any\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### setFlashMode()\n\n```typescript\nsetFlashMode() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### isTorchOn()\n\n```typescript\nisTorchOn() =\u003e Promise\u003c{ result: boolean; }\u003e\n```\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;{ result: boolean; }\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### enableTorch(...)\n\n```typescript\nenableTorch(options: { enable: boolean; }) =\u003e Promise\u003cvoid\u003e\n```\n\n| Param         | Type                              |\n| ------------- | --------------------------------- |\n| **`options`** | \u003ccode\u003e{ enable: boolean; }\u003c/code\u003e |\n\n--------------------\n\n\n### isTorchAvailable()\n\n```typescript\nisTorchAvailable() =\u003e Promise\u003c{ result: boolean; }\u003e\n```\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;{ result: boolean; }\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### focus(...)\n\n```typescript\nfocus(options: { x: number; y: number; }) =\u003e Promise\u003cvoid\u003e\n```\n\n| Param         | Type                                   |\n| ------------- | -------------------------------------- |\n| **`options`** | \u003ccode\u003e{ x: number; y: number; }\u003c/code\u003e |\n\n--------------------\n\n\n### minAvailableZoom()\n\n```typescript\nminAvailableZoom() =\u003e Promise\u003c{ result: number; }\u003e\n```\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;{ result: number; }\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### maxAvailableZoom()\n\n```typescript\nmaxAvailableZoom() =\u003e Promise\u003c{ result: number; }\u003e\n```\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;{ result: number; }\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### zoom(...)\n\n```typescript\nzoom(options: { factor: number; }) =\u003e Promise\u003cvoid\u003e\n```\n\n| Param         | Type                             |\n| ------------- | -------------------------------- |\n| **`options`** | \u003ccode\u003e{ factor: number; }\u003c/code\u003e |\n\n--------------------\n\n\n### setQuality(...)\n\n```typescript\nsetQuality(options: { quality: 'low' | 'hq'; }) =\u003e Promise\u003cvoid\u003e\n```\n\n| Param         | Type                                     |\n| ------------- | ---------------------------------------- |\n| **`options`** | \u003ccode\u003e{ quality: 'low' \\| 'hq'; }\u003c/code\u003e |\n\n--------------------\n\n\n### saveFileToUserDevice(...)\n\n```typescript\nsaveFileToUserDevice(options: { filePath: string; }) =\u003e Promise\u003cvoid\u003e\n```\n\n| Param         | Type                               |\n| ------------- | ---------------------------------- |\n| **`options`** | \u003ccode\u003e{ filePath: string; }\u003c/code\u003e |\n\n--------------------\n\n\n### checkPermissions()\n\n```typescript\ncheckPermissions() =\u003e Promise\u003cPermissionStatus\u003e\n```\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#permissionstatus\"\u003ePermissionStatus\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### requestPermissions()\n\n```typescript\nrequestPermissions() =\u003e Promise\u003cPermissionStatus\u003e\n```\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#permissionstatus\"\u003ePermissionStatus\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### addListener('captureSuccessResult', ...)\n\n```typescript\naddListener(eventName: 'captureSuccessResult', listenerFunc: (data: CaptureSuccessResult) =\u003e void) =\u003e Promise\u003cPluginListenerHandle\u003e\n```\n\n| Param              | Type                                                                                     |\n| ------------------ | ---------------------------------------------------------------------------------------- |\n| **`eventName`**    | \u003ccode\u003e'captureSuccessResult'\u003c/code\u003e                                                      |\n| **`listenerFunc`** | \u003ccode\u003e(data: \u003ca href=\"#capturesuccessresult\"\u003eCaptureSuccessResult\u003c/a\u003e) =\u0026gt; void\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### addListener('captureErrorResult', ...)\n\n```typescript\naddListener(eventName: 'captureErrorResult', listenerFunc: (data: CaptureErrorResult) =\u003e void) =\u003e Promise\u003cPluginListenerHandle\u003e\n```\n\n| Param              | Type                                                                                 |\n| ------------------ | ------------------------------------------------------------------------------------ |\n| **`eventName`**    | \u003ccode\u003e'captureErrorResult'\u003c/code\u003e                                                    |\n| **`listenerFunc`** | \u003ccode\u003e(data: \u003ca href=\"#captureerrorresult\"\u003eCaptureErrorResult\u003c/a\u003e) =\u0026gt; void\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### addListener('captureVideoFinished', ...)\n\n```typescript\naddListener(eventName: 'captureVideoFinished', listenerFunc: (data: CaptureResult) =\u003e void) =\u003e Promise\u003cPluginListenerHandle\u003e\n```\n\n| Param              | Type                                                                       |\n| ------------------ | -------------------------------------------------------------------------- |\n| **`eventName`**    | \u003ccode\u003e'captureVideoFinished'\u003c/code\u003e                                        |\n| **`listenerFunc`** | \u003ccode\u003e(data: \u003ca href=\"#captureresult\"\u003eCaptureResult\u003c/a\u003e) =\u0026gt; void\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### addListener('capturePhotoFinished', ...)\n\n```typescript\naddListener(eventName: 'capturePhotoFinished', listenerFunc: (data: CaptureResult) =\u003e void) =\u003e Promise\u003cPluginListenerHandle\u003e\n```\n\n| Param              | Type                                                                       |\n| ------------------ | -------------------------------------------------------------------------- |\n| **`eventName`**    | \u003ccode\u003e'capturePhotoFinished'\u003c/code\u003e                                        |\n| **`listenerFunc`** | \u003ccode\u003e(data: \u003ca href=\"#captureresult\"\u003eCaptureResult\u003c/a\u003e) =\u0026gt; void\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### addListener('accelerometerOrientation', ...)\n\n```typescript\naddListener(eventName: 'accelerometerOrientation', listenerFunc: (data: { orientation: CustomOrientation; }) =\u003e void) =\u003e Promise\u003cPluginListenerHandle\u003e\n```\n\n| Param              | Type                                                                                                 |\n| ------------------ | ---------------------------------------------------------------------------------------------------- |\n| **`eventName`**    | \u003ccode\u003e'accelerometerOrientation'\u003c/code\u003e                                                              |\n| **`listenerFunc`** | \u003ccode\u003e(data: { orientation: \u003ca href=\"#customorientation\"\u003eCustomOrientation\u003c/a\u003e; }) =\u0026gt; void\u003c/code\u003e |\n\n**Returns:** \u003ccode\u003ePromise\u0026lt;\u003ca href=\"#pluginlistenerhandle\"\u003ePluginListenerHandle\u003c/a\u003e\u0026gt;\u003c/code\u003e\n\n--------------------\n\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() =\u003e Promise\u003cvoid\u003e\n```\n\n--------------------\n\n\n### Interfaces\n\n\n#### PermissionStatus\n\n- `camera` permission allows to take photo and record video without audio.\n- `microphone` permission allows to record video with audio.\n\n| Prop             | Type                                                        |\n| ---------------- | ----------------------------------------------------------- |\n| **`camera`**     | \u003ccode\u003e\u003ca href=\"#permissionstate\"\u003ePermissionState\u003c/a\u003e\u003c/code\u003e |\n| **`microphone`** | \u003ccode\u003e\u003ca href=\"#permissionstate\"\u003ePermissionState\u003c/a\u003e\u003c/code\u003e |\n\n\n#### PluginListenerHandle\n\n| Prop         | Type                                      |\n| ------------ | ----------------------------------------- |\n| **`remove`** | \u003ccode\u003e() =\u0026gt; Promise\u0026lt;void\u0026gt;\u003c/code\u003e |\n\n\n#### CaptureSuccessResult\n\nRepresents the result of a successful capture operation.\n\n| Prop           | Type                                     | Description                                                                    |\n| -------------- | ---------------------------------------- | ------------------------------------------------------------------------------ |\n| **`mimeType`** | \u003ccode\u003e'image/jpeg' \\| 'video/mp4'\u003c/code\u003e | The MIME type of the captured media. Examples: \"image/jpeg\", \"video/mp4\".      |\n| **`name`**     | \u003ccode\u003estring\u003c/code\u003e                      | The name of the captured media file. Examples: \"my-photo.jpg\", \"my-video.mp4\". |\n| **`path`**     | \u003ccode\u003estring\u003c/code\u003e                      | The path to the captured media file. Example: \"file://path-to-my-video.mp4\".   |\n| **`size`**     | \u003ccode\u003enumber\u003c/code\u003e                      | The size of the captured media file in bytes. Example: \"7046447\".              |\n\n\n#### CaptureErrorResult\n\nRepresents the result of a failed capture operation.\n\n| Prop               | Type                | Description                                            |\n| ------------------ | ------------------- | ------------------------------------------------------ |\n| **`errorMessage`** | \u003ccode\u003estring\u003c/code\u003e | The error message describing the cause of the failure. |\n\n\n#### CaptureResult\n\n| Prop               | Type                | Description                                                                                 |\n| ------------------ | ------------------- | ------------------------------------------------------------------------------------------- |\n| **`filePath`**     | \u003ccode\u003estring\u003c/code\u003e | File path for photo or video taken by camera. Example: file://your-app-dir/.../my-video.mp4 |\n| **`errorMessage`** | \u003ccode\u003estring\u003c/code\u003e | Error message if any                                                                        |\n\n\n### Type Aliases\n\n\n#### PermissionState\n\n\u003ccode\u003e'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'\u003c/code\u003e\n\n\n#### CustomOrientation\n\n\u003ccode\u003e'portraitUp' | 'portraitDown' | 'landscapeRight' | 'landscaperLeft'\u003c/code\u003e\n\n\u003c/docgen-api\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumbersprotocol%2Fpreview-camera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumbersprotocol%2Fpreview-camera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumbersprotocol%2Fpreview-camera/lists"}