Dev Center
{WebTwainObject}.Addon.Camera
{WebTwainObject} denotes the
WebTwain
instance.Dynamsoft provides a built-in feature to handle camera capturing, prospective adjusting, etc. Check out the APIs
showVideo()
andcloseVideo()
. Please NOTE that these two APIs should not be mixed with other more specific APIs likeplay()
,pause()
andstop()
, etc.
Methods
getSourceList() |
selectSource() |
getCurrentSource() |
closeSource() |
getResolution() |
setResolution() |
getCurrentResolution() |
play() |
pause() |
resume() |
stop() |
getStatus() |
capture() |
showVideo() |
closeVideo() |
Events
video-closed |
video-error |
Syntax
/**
* Return a list of all available cameras.
*/
getSourceList(): Promise<DeviceInfo[]>;
interface DeviceInfo{
deviceId: string;
label: string;
}
Example
DWObject.Addon.Camera.getSourceList();
Syntax
/**
* Select a camera to use.
* @param deviceId Specify the camera with its deviceId.
*/
selectSource(deviceId: string): Promise<DeviceInfo>;
Syntax
/**
* Return the info about the current camera.
*/
getCurrentSource():DeviceInfo;
Syntax
/**
* Close the current camera.
*/
closeSource(): Promise<DeviceInfo>;
Syntax
/**
* Return the resolutions supported by the current camera.
*/
getResolution(): Promise<Resolution[]>
interface Resolution{
width: number;
height: number;
}
Syntax
/**
* Set the resolution for the current camera.
* @param resolution Specify the resolution.
*/
setResolution(resolution: Resolution): Promise<Resolution>;
Syntax
/**
* Return the resolution of the current camera.
*/
getCurrentResolution(): Promise<Resolution>;
Usage notes
If the camera is playing, the actual resolution is returned. If the camera is not playing, the last set resolution or null is returned.
Syntax
/**
* Start streaming video from the current camera.
* @param element Specify an HTML element to put the video stream in.
* @param resolution Specify the initial resolution.
* @param fill Whether to fill the viewer space with the video stream and leave no margin. The default value is `false`.
*/
play(element?: HTMLElement,
resolution?: Resolution,
fill?: boolean
): Promise<Resolution>;
Usage notes
If no camera is chosen, the default camera is used.
If the method is called without arguments or null
is passed to element
, the video will show in the main viewer.
Syntax
/**
* Pause the video stream.
*/
pause(): void;
Syntax
/**
* Resume the video stream.
*/
resume(): void;
Syntax
/**
* Stop the video stream.
*/
stop(): void;
Syntax
/**
* Return the status of the current camera.
*/
getStatus(): string;
Usage notes
The status string is either empty or one of the following: “playing”, “paused”, “stopped”. An empty string means no camera is open.
Syntax
/**
* Capture a frame from the video stream.
*/
capture(): Promise<Blob>;
Syntax
/**
* Start streaming video from the current camera in the viewer.
* @param deviceId Specify a camera.
* @param resolution Specify the initial resolution.
* @param mode Specify the mode.
* @param fill Whether to fill the viewer area with the video stream and leave no margin.
*/
showVideo(deviceId?: string,
resolution?: Resolution,
mode?: string,
fill?: boolean
): Promise<Resolution>;
Usage notes
There are two available modes: document
and picture
.
picture
: border detection is turned off and supports taking images consecutively. This is the default mode.document
: border detection will be on and only supports taking one image at a time.Syntax
/**
* Close the camera and hide the video streaming UI.
*/
closeVideo(): void;
Syntax
/**
* This event is triggered when the video is closed.
*/
on("video-closed", callback: () => void): boolean;
Syntax
/**
* This event is triggered when the video playing operation. throws out an error.
* @argument errorCode The error code.
* @argument errorString The error string.
*/
on("video-error", callback: (errorCode, errorString) => void): boolean;
version 17.1.1