@snap/camera-kit
Version:
Camera Kit Web
108 lines (63 loc) • 2.45 kB
Markdown
[CameraKit Web SDK - v0.22.0](../README.md) / [Exports](../modules.md) / CameraKit
# Class: CameraKit
The entry point to the CameraKit SDK's API. Most of CameraKit's features are accessed via this class.
Applications obtain an instance of CameraKit by calling [bootstrapCameraKit](../modules.md#bootstrapcamerakit).
**`Example`**
```ts
const cameraKit = await bootstrapCameraKit(config)
```
Then this class can be used to:
- Create a [CameraKitSession](CameraKitSession.md) instance, which provides the API for setting up media inputs, applying Lenses,
and obtaining rendered `<canvas>` outputs.
- Query for lenses using [LensRepository](LensRepository.md).
- Listen for lens usage metrics events using MetricsEventTarget.
## Table of contents
### Properties
- [lenses](CameraKit.md#lenses)
- [metrics](CameraKit.md#metrics)
- [lensRepository](CameraKit.md#lensrepository)
### Methods
- [createSession](CameraKit.md#createsession)
- [destroy](CameraKit.md#destroy)
## Properties
### lenses
• `Readonly` **lenses**: `Object`
**`Deprecated`**
Use [lensRepository](CameraKit.md#lensrepository)
#### Type declaration
| Name | Type |
| :------ | :------ |
| `repository` | [`LensRepository`](LensRepository.md) |
___
### metrics
• `Readonly` **metrics**: [`TypedEventTarget`](TypedEventTarget.md)\<[`LensMetricsEvents`](../modules.md#lensmetricsevents)\>
Business metrics (e.g. each time a lens is viewed) are emitted here.
___
### lensRepository
• `Readonly` **lensRepository**: [`LensRepository`](LensRepository.md)
Used to query for lenses and lens groups.
## Methods
### createSession
▸ **createSession**(`options?`): `Promise`\<[`CameraKitSession`](CameraKitSession.md)\>
Create a CameraKitSession.
This initializes the rendering engine and returns a [CameraKitSession](CameraKitSession.md) instance, which provides access
to Lens rendering.
#### Parameters
| Name | Type |
| :------ | :------ |
| `options` | [`CreateSessionOptions`](../interfaces/CreateSessionOptions.md) |
#### Returns
`Promise`\<[`CameraKitSession`](CameraKitSession.md)\>
**`Example`**
```ts
const cameraKit = await bootstrapCameraKit(config)
const session = await cameraKit.createSession()
const lens = await cameraKit.lensRepository.loadLens(lensId, groupId)
session.applyLens(lens)
```
___
### destroy
▸ **destroy**(): `Promise`\<`void`\>
Destroys all sessions and frees all resources.
#### Returns
`Promise`\<`void`\>