Resource Base
Table of contents

Camera Control

Basic Control

Name Description
ifSkipCameraInspection Returns or sets whether to skip camera inspection at initialization to save time.
ifSaveLastUsedCamera Returns or sets whether to save the last used camera and resolution.
getAllCameras() Returns information of all available cameras on the device.
selectCamera() Chooses a camera as the video source.
getSelectedCamera() Returns information about the selected / current camera.
open() Turns on the camera to start streaming live video.
close() Stops video streaming and releases the camera.
isOpen() Returns whether the selected camera is turned on / occupied.
pause() Pauses video streaming without releasing the camera.
resume() Resumes video streaming.
setResolution() Sets the resolution of the current video input.
getResolution() Returns the resolution of the current video input.

Advanced Control

Name Description
setFrameRate() Adjusts the frame rate.
getFrameRate() Returns the real-time frame rate.
turnOnTorch() Turns on the torch/flashlight if the current camera supports it.
turnOffTorch() Turns off the torch/flashlight.
setZoom() Sets the zoom level of the video.
setFocus() Sets the focus mode and focus distance of the camera.
getFocus() Gets the focus mode and focus distance of the camera.
getCapabilities() Inspects and returns the capabilities of the selected camera.
getCameraSettings() Returns the current values for each constrainable property of the selected camera.
setColorTemperature() Adjusts the color temperature of the selected camera.
setExposureCompensation() Sets the exposure compensation index of the selected camera.

ifSkipCameraInspection

Returns or sets whether to skip camera inspection at initialization to save time. Note that if a previously used camera is already available in the localStorage, the inspection is skipped automatically. Read more on ifSaveLastUsedCamera.

ifSkipCameraInspection: boolean;

ifSaveLastUsedCamera

Returns or sets whether to save the last used camera and resolution. This feature makes use of the localStorage of the browser.

NOTE

This feature only works on mainstream browsers like Chrome, Firefox and Safari. Other browsers may change the device IDs dynamically thus making it impossible to track the camera.

ifSaveLastUsedCamera: boolean;

getAllCameras

Returns information of all available cameras on the device.

getAllCameras(): Promise<VideoDeviceInfo[]>;

Parameters

None.

Return value

A promise resolving to an array of VideoDeviceInfo objects.

Code Snippet

let cameras = await enhancer.getAllCameras();
if (cameras.length) {
    await enhancer.selectCamera(cameras[0]);
}

See also

VideoDeviceInfo

selectCamera

Chooses a camera as the video source.

If called before open() or show(), the selected camera will be used. Otherwise, the system will decide which one to use.

selectCamera(cameraObjectOrDeviceID: VideoDeviceInfo | string): Promise<PlayCallbackInfo>;

Parameters

cameraObjectOrDeviceID: specifies the camera.

Return value

A promise resolving to a PlayCallbackInfo object.

Code Snippet

let cameras = await enhancer.getAllCameras();
if (cameras.length) {
    await enhancer.selectCamera(cameras[0]);
}

See also

PlayCallbackInfo

getSelectedCamera

Returns information about the selected / current camera.

getSelectedCamera(): VideoDeviceInfo;

Parameters

None.

Return value

A VideoDeviceInfo object with details about the selected camera.

Code Snippet

let camera = enhancer.getSelectedCamera();
console.log(camera.label);

See also

VideoDeviceInfo

open

Turns on the camera to start streaming live video.

open(appendOrShowUI?: boolean): Promise<PlayCallbackInfo>;

Parameters

appendOrShowUI: this parameter specifies how to handle the UI. When set to true, if the UI doesn’t exist in the DOM tree, the CameraEnhancer instance will append it in the DOM and show it; if the UI already exists in the DOM tree but is hidden, it’ll be displayed. When not set or set to false, it means not to change the original state of that UI: if it doesn’t exist in the DOM tree, nothing shows up on the page; if it exists in the DOM tree, it may or may not show up depending on its original state.

Return value

A promise resolving to a PlayCallbackInfo object.

See also

PlayCallbackInfo

close

Stops video streaming and releases the camera.

close(hideUI?: boolean): void;

Parameters

hideUI: this parameter specifies how to handle the UI. When set to true, if the UI doesn’t exist in the DOM tree or it exists but is hidden, nothing is done; if the UI already exists in the DOM tree and is shown, it’ll be hidden. When not set or set to false, it means not to change the original state of that UI: if it doesn’t exist in the DOM tree, nothing happens; if it exists in the DOM tree, it may or may not be hidden depending on its original state.

Return value

None.

isOpen

Returns whether the selected camera is turned on / occupied.

isOpen(): boolean;

Parameters

None.

Return value

true means the camera is turned on and false the opposite.

pause

Pauses video streaming without releasing the camera.

pause(): void;

Parameters

None.

Return value

None.

resume

Resumes video streaming.

resume(): void;

Parameters

None.

Return value

None.

setResolution

Sets the resolution of the current video input. If the specified resolution is not exactly supported, the closest resolution will be applied.

setResolution(widthOrResolution: number | number[], height: number): Promise<PlayCallbackInfo>;

Parameters

widthOrResolution: if passed a number, it specifies the horizontal resolution. If passed an array of two numbers, it specifies both the horizontal and the vertial resolutions.

height: specifies the vertical resolution.

Return value

A promise resolving to a PlayCallbackInfo object.

Code Snippet

await enhancer.setResolution(width, height);

See also

PlayCallbackInfo

getResolution

Returns the resolution of the current video input.

getResolution(): [number, number];

Parameters

None.

Return value

An array of two numbers representing the resolution in the sequence of [width, height].

Code Snippet

let resolution = await enhancer.getResolution();
console.log(resolution.width + " x " + resolution.height);

setFrameRate

Adjusts the frame rate.

At present, this method only works in Edge, Safari, Chrome and other Chromium-based browsers (Firefox is not supported). Also, it should be called when a camera is open.

setFrameRate(rate: number): Promise<void>;

Parameters

rate: specifies the new frame rate.

Return value

A promise that resolves when the operation succeeds.

Code Snippet

await enhancer.setFrameRate(10);

See also

getCapabilities

getFrameRate

Returns the real-time frame rate.

getFrameRate(): number;

Parameters

None.

Return value

The calculated real-time frame rate.

Code Snippet

await enhancer.getFrameRate();

turnOnTorch

Turns on the torch/flashlight if the current camera supports it.

This method should be called when the camera is turned on. Note that it only works with Chromium-based browsers such as Edge and Chrome on Windows or Android. Other browsers such as Firefox or Safari are not supported. Note that all browsers on iOS (including Chrome) use WebKit as the rendering engine and are not supported.

turnOnTorch(): Promise<void>;

Parameters

None.

Return value

A promise that resolves when the operation succeeds.

Code Snippet

await enhancer.turnOnTorch();

See also

turnOffTorch

getCapabilities

turnOffTorch

Turns off the torch/flashlight.

This method should be called when the camera is turned on. Note that it only works with Chromium-based browsers such as Edge and Chrome on Windows or Android. Other browsers such as Firefox or Safari are not supported. Note that all browsers on iOS (including Chrome) use WebKit as the rendering engine and are not supported.

turnOffTorch(): Promise<void>;

Parameters

None.

Return value

A promise that resolves when the operation succeeds.

Code Snippet

await enhancer.turnOffTorch();

See also

turnOnTorch

getCapabilities

setZoom

Sets the zoom level of the video.

This method should be called when the camera is turned on. Note that it only works with Chromium-based browsers such as Edge and Chrome on Windows or Android. Other browsers such as Firefox or Safari are not supported. Note that all browsers on iOS (including Chrome) use WebKit as the rendering engine and are not supported.

setZoom(zoomValue: number): Promise<void>;

Parameters

zoomValue: specifies the zoom level.

Return value

A promise that resolves when the operation succeeds.

Code Snippet

await enhancer.setZoom(2);

See also

getCapabilities

setFocus

Sets the focus mode and focus distance of the camera.

This method should be called when the camera is turned on. Note that it only works with Chromium-based browsers such as Edge and Chrome on Windows or Android. Other browsers such as Firefox or Safari are not supported. Note that all browsers on iOS (including Chrome) use WebKit as the rendering engine and are not supported.

setFocus(mode: string, distance?: number): Promise<void>;

Parameters

mode: specifies the focus mode, the available values include continuous and manual .

distance: specifies the focus distance, only required when the mode is set to manual . Use getCapabilities to get the allowed value range.

Return value

A promise that resolves when the operation succeeds.

Code Snippet

await enhancer.setFocus("manual", 400);

See also

getCapabilities

getFocus

Gets the focus mode and the focus distance.

getFocus(): {mode: string, distance?: number};

Parameters

None.

Return value

A promise that resolves when the operation succeeds.

Code Snippet

await enhancer.getFocus();

See also

getCapabilities

getCapabilities

Inspects and returns the capabilities of the selected camera.

At present, this method only works in Edge, Safari, Chrome and other Chromium-based browsers (Firefox is not supported). Also, it should be called when a camera is open.

getCapabilities(): MediaTrackCapabilities;

Parameters

None.

Return value

A MediaTrackCapabilities object which specifies the values or range of values for each constrainable property of the current camera.

Code Snippet

enhancer.getCapabilities();
/* Result sample
{
  aspectRatio: {max: 1280, min: 0.001388888888888889},
  brightness: {max: 64, min: -64, step: 1},
  colorTemperature: {max: 6500, min: 2800, step: 10},
  contrast: {max: 95, min: 0, step: 1},
  deviceId: "3a505c29a3312600ea0afd79f8e2b4ba4fba3e539257801ff1de8718c27f2bed",
  exposureMode: ["continuous", "manual"],
  exposureTime: {max: 10000, min: 39.0625, step: 39.0625},
  facingMode: [],
  focusDistance: {max: 1024, min: 0, step: 10},
  focusMode: ["continuous", "manual"],
  frameRate: {max: 30, min: 0},
  groupId: "35a82dcb7d5b0ef5bda550718d194f04a812c976175e926ccb81fb9d235d010f",
  height: {max: 720, min: 1},
  resizeMode: ["none", "crop-and-scale"],
  saturation: {max: 100, min: 0, step: 1},
  sharpness: {max: 7, min: 1, step: 1},
  whiteBalanceMode: ["continuous", "manual"],
  width: {max: 1280, min: 1}
}
*/

See also

MediaTrackCapabilities

getCameraSettings

Returns the current values for each constrainable property of the selected camera.

getCameraSettings(): MediaTrackSettings;

Parameters

None.

Return value

The current values for each constrainable property of the current camera in the form of a MediaTrackSettings object.

Code Snippet

enhancer.getCameraSettings();
/* Result sample
{
  aspectRatio: 1.3333333333333333,
  brightness: 0,
  colorTemperature: 4600,
  contrast: 0,
  deviceId: "3a505c29a3312600ea0afd79f8e2b4ba4fba3e539257801ff1de8718c27f2bed",
  exposureMode: "continuous",
  exposureTime: 156.25,
  focusDistance: 120,
  focusMode: "continuous",
  frameRate: 30,
  groupId: "35a82dcb7d5b0ef5bda550718d194f04a812c976175e926ccb81fb9d235d010f",
  height: 480,
  resizeMode: "none",
  saturation: 73,
  sharpness: 2,
  whiteBalanceMode: "continuous",
  width: 640
}
*/

See also

getCapabilities

setColorTemperature

Adjusts the color temperature of the selected camera.

This method should be called when the camera is turned on. Note that it only works with Chromium-based browsers such as Edge and Chrome on Windows or Android. Other browsers such as Firefox or Safari are not supported. Note that all browsers on iOS (including Chrome) use WebKit as the rendering engine and are not supported.

setColorTemperature(colorTemperatur: number): Promise<void>;

Parameters

colorTemperatur: specifies the new color temperature.

Return value

A promise that resolves when the operation succeeds.

Code Snippet

await enhancer.setColorTemperature(5000);

See also

getCapabilities

setExposureCompensation

Sets the exposure compensation index of the selected camera.

This method should be called when the camera is turned on. Note that it only works with Chromium-based browsers such as Edge and Chrome on Windows or Android. Other browsers such as Firefox or Safari are not supported. Note that all browsers on iOS (including Chrome) use WebKit as the rendering engine and are not supported.

setExposureCompensation(exposureCompensation: number): Promise<void>;

Parameters

exposureCompensation: specifies the new exposure compensation index.

Return value

A promise that resolves when the operation succeeds.

Code Snippet

await enhancer.setExposureCompensation(-0.7);

See also

getCapabilities

This page is compatible for:

Version 1.0

Is this page helpful?

YesYes NoNo

In this article:

version 2.1.0

  • Latest version(4.0.2)
  • Version 4.x
    • Version 4.0.1
    • Version 4.0.0
  • Version 3.x
    • Version 3.3.10
    • Version 3.3.9
    • Version 3.3.8
    • Version 3.3.7
    • Version 3.3.6
    • Version 3.3.5
    • Version 3.3.4
    • Version 3.3.3
    • Version 3.3.2
    • Version 3.3.1
    • Version 3.3.0
    • Version 3.2.0
    • Version 3.1.0
    • Version 3.0.1
    • Version 3.0.0
  • Version 2.x
    • Version 2.3.5
    • Version 2.3.2
    • Version 2.3.1
    • Version 2.3.0
    • Version 2.1.4
    • Version 2.1.3
    • Version 2.1.0
    • Version 2.0.0
Change +