WebCameraService Class
Provides information about the camera device, allows to start/stop an image capturing and to capture the image.
Constructor
WebCameraService
()
Item Index
Methods
- addAvailabilityChangedListener
- addImageCapturingListener
- addSelectedCameraChangedListener
- captureImageAsync
- getIsAvailableAsync
- getSelectedCameraAsync
- removeAvailabilityChangedListener
- removeImageCapturingListener
- removeSelectedCameraChangedListener
- showSettingsAsync
- startCapturingAsync
- stopCapturingAsync
Methods
addAvailabilityChangedListener
-
handler
Adds listeners to AvailabilityChanged event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of boolean type and does not return a value.
Returns:
Example:
var connector = new buildingLink.Connector();
// Handles AvailabilityChanged event.
var onAvailabilityChanged = function(isAvailable) {
alert("Service availability changed: " + isAvailable);
};
var connectionSuccededCallback = function() {
// Adds listener to AvailabilityChanged event for any service: connector.barcodeScanService.addAvailabilityChangedListener(), connector.fingerprintReaderService.addAvailabilityChangedListener().
connector.idCardScanService.addAvailabilityChangedListener(onAvailabilityChanged);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
addImageCapturingListener
-
handler
Adds listeners to ImageCapturing event.
Parameters:
-
handler
FunctionA function that will handle the event. The function that has a single parameter of type Image and does not return a value.
Returns:
Example:
var connector = new buildingLink.Connector();
// Prepares canvas to display image stream from camera. It is supposed that HTML contains the following element: <canvas id="cnvPhoto"></canvas>
var canvas = document.getElementById("cnvPhoto");
var image = new Image();
image.onload = function () {
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext("2d");
context.drawImage(image, 0, 0, canvas.width, canvas.height);
};
image.onerror = function (stuff) {
console.log("Img Onerror:", stuff);
};
// Handles ImageCapturing event.
var onImageCapturing = function(imageCapturingResult) {
image.src = "data:image/png;base64," + imageCapturingResult.imageBase64;
};
var connectionSuccededCallback = function() {
// Adds listener to ImageCapturing event.
connector.webCameraService.addImageCapturingListener(onImageCapturing);
// Starts image capturing from selected camera.
connector.webCameraService.startCapturingAsync(true, 25);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
addSelectedCameraChangedListener
-
handler
Adds listeners to SelectedCameraChanged event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of type Device and does not return a value.
Returns:
Example:
var connector = new buildingLink.Connector();
// Handles SelectedCameraChanged event.
var onSelectedCameraChanged = function(camera) {
var alertMessage;
if (camera) {
alertMessage = "Selected camera changed. New camera: " + camera.modelName;
} else {
alertMessage = "Selected camera changed.";
}
alert(alertMessage);
};
var connectionSuccededCallback = function() {
// Adds listener to SelectedCameraChanged event.
connector.webCameraService.addSelectedCameraChangedListener(onSelectedCameraChanged);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
captureImageAsync
()
Promise | CaptureImageResult
async
Captures an image from selected camera.
Returns:
A promise of the result that returns a CaptureImageResult in case of success.
Example:
// Creates shortcuts to avoid using long references to ImageCapturingFailureReason and FailureReason below in code.
var ImageCapturingFailureReason = buildingLink.connector.services.imageCapturing.ImageCapturingFailureReason;
var FailureReason = buildingLink.connector.services.FailureReason;
var connector = new buildingLink.Connector();
// Defines failure handler for operation with device.
var failureCaptureHandler = function(failureReason) {
var failureMessage;
switch (failureReason) {
case FailureReason.ServiceNotAvailable:
failureMessage = "No attached WebCams.";
break;
case FailureReason.InternalError:
failureMessage = "Internal error occured.";
break;
default:
throw new Error("failureReason");
}
alert(failureMessage);
};
var connectionSuccededCallback = function() {
// Starts image capturing from selected camera.
connector.webCameraService.startCapturingAsync(true, 25).then(function(startCapturingResult) {
// Handle startCapturingResult
}, failureCaptureHandler);
// Camptures an image from selected camera in 5 seconds.
setTimeout(function (){
connector.webCameraService.captureImageAsync().then(function (result) {
if (result.isSuccessful) {
alert("Image captured."); // Get access to captured image via property result.image
} else {
switch (result.failureReason) {
case ImageCapturingFailureReason.CapturingNotStarted:
alert("Image capture failed: CapturingNotStarted"); // Shows image capture failure message.
break;
case ImageCapturingFailureReason.InternalError:
alert("Image captured: InternalError"); // Shows image capture failure message.
break;
}
}
}, failureCaptureHandler);
}, 5000);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
getIsAvailableAsync
()
Promise | Boolean
async
Allows to determine whether device is available.
Returns:
A promise of the result that returns true if device is available or false otherwise in case of success.
Example:
var connector = new buildingLink.Connector();
var connectionSuccededCallback = function() {
// Gets whether device service is available or no. This method is common for all services and can be used like: connector.autoDialerService.getIsAvailableAsync(), connector.fingerprintReaderService.getIsAvailableAsync(), etc.
connector.webCameraService.getIsAvailableAsync().then(function (isAvailable) {
if (isAvailable) {
alert("Service is available.");
} else {
alert("Service is not available.");
}
});
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
getSelectedCameraAsync
()
Promise | Device
async
Gets selected camera device.
Example:
// Creates a shortcut to avoid using long references to FailureReason below in code.
var FailureReason = buildingLink.connector.services.FailureReason;
var connector = new buildingLink.Connector();
// Defines failure handler for operation with device.
var failureGetSelectedCameraHandler = function(failureReason) {
var failureMessage;
switch (failureReason) {
case FailureReason.ServiceNotAvailable:
failureMessage = "No attached WebCams.";
break;
case FailureReason.InternalError:
failureMessage = "Internal error occured.";
break;
default:
throw new Error("failureReason");
}
alert(failureMessage);
};
var connectionSuccededCallback = function() {
// Gets selected web camera device.
connector.webCameraService.getSelectedCameraAsync().then(function (camera) {
alert("Camera name: " + camera.name + "\n" + "Camera model name: " + camera.modelName); // Shows camera name and model.
}, failureGetSelectedCameraHandler);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
removeAvailabilityChangedListener
-
handler
Removes listeners from AvailabilityChanged event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of boolean type and does not return a value.
Returns:
Example:
var connector = new buildingLink.Connector();
// Handles AvailabilityChanged event.
var onAvailabilityChanged = function(isAvailable) {
alert("Service availability changed: " + isAvailable);
};
var connectionSuccededCallback = function() {
// Adds listener to AvailabilityChanged event for any service: connector.signaturePadService.addAvailabilityChangedListener(), connector.autoDialerService.addAvailabilityChangedListener().
connector.idCardScanService.addAvailabilityChangedListener(onAvailabilityChanged);
// Removes AvailabilityChanged listener in 5 seconds for any service: connector.signaturePadService.removeAvailabilityChangedListener(), connector.autoDialerService.removeAvailabilityChangedListener().
setTimeout(function (){
connector.idCardScanService.removeAvailabilityChangedListener(onAvailabilityChanged);
alert("AvailabilityChanged listener."); // Observe that notifications will be stopped after this alert.
}, 5000);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
removeImageCapturingListener
-
handler
Removes listeners from ImageCapturing event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of type Image and does not return a value.
Returns:
Example:
var connector = new buildingLink.Connector();
// Handles ImageCapturing event.
var onImageCapturing = function(imageCapturingResult) {
console.log("Capturing.");
};
var connectionSuccededCallback = function() {
// Adds listeners to ImageCapturing event.
connector.webCameraService.addImageCapturingListener(onImageCapturing);
// Starts image capturing from selected camera.
connector.webCameraService.startCapturingAsync(true, 25);
// Stops image capturing from selected camera and removes ImageCapturing listener in 5 seconds.
setTimeout(function (){
connector.webCameraService.stopCapturingAsync();
connector.webCameraService.removeImageCapturingListener(onImageCapturing);
}, 5000);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
removeSelectedCameraChangedListener
-
handler
Removes listeners from SelectedCameraChanged event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of type Device and does not return a value.
Returns:
Example:
var connector = new buildingLink.Connector();
// Handles SelectedCameraChanged event.
var onSelectedCameraChanged = function(camera) {
alert("Selected camera changed.");
};
var connectionSuccededCallback = function() {
// Adds listener to SelectedCameraChanged event.
connector.webCameraService.addSelectedCameraChangedListener(onSelectedCameraChanged);
// Removes SelectedCameraChanged listener in 5 seconds.
setTimeout(function (){
connector.webCameraService.removeSelectedCameraChangedListener(onSelectedCameraChanged);
}, 5000);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
showSettingsAsync
()
Promise | Void
async
Allows to show device settings in Connector app.
Returns:
A promise of the result.
Example:
var connector = new buildingLink.Connector();
var connectionSuccededCallback = function() {
// Shows device settings for selected service. This method is common for all services and can be used: connector.idCardScanService.showSettingsAsync(), connector.barcodeScanService.showSettingsAsync(), etc.
connector.printService.showSettingsAsync();
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
startCapturingAsync
-
shouldRestartCapturingWhenCameraIsFree
-
[fps=undefined]
Starts capturing an image from selected camera.
Parameters:
-
shouldRestartCapturingWhenCameraIsFree
Booleantrue to start capturing when camera is free, otherwise, false.
-
[fps=undefined]
Number optionalNumber of frames that server will send per second.
Returns:
A promise of the result that returns a StartImageCapturingResult in case of success.
Example:
// Creates shortcuts to avoid using long references to StartImageCapturingStatus and FailureReason below in code.
var StartImageCapturingStatus = buildingLink.connector.services.imageCapturing.StartImageCapturingStatus;
var FailureReason = buildingLink.connector.services.FailureReason;
var connector = new buildingLink.Connector();
// Defines failure handler for operation with device.
var failureStartCapturingHandler = function(failureReason) {
var failureMessage;
switch (failureReason) {
case FailureReason.ServiceNotAvailable:
failureMessage = "No attached WebCams.";
break;
case FailureReason.InternalError:
failureMessage = "Internal error occured.";
break;
default:
throw new Error("failureReason");
}
alert(failureMessage);
};
var connectionSuccededCallback = function() {
// Starts image capturing from selected camera.
connector.webCameraService.startCapturingAsync(true, 25).then(function (result) {
switch (result.startCapturingStatus) {
case StartImageCapturingStatus.Failed:
alert("WebCameraStarted result: Fail to start webcamera capturing."); // Shows failure message.
break;
case StartImageCapturingStatus.WebCameraBusy:
alert("WebCameraStarted result: webcamera busy by another program."); // Shows camera busy message.
break;
case StartImageCapturingStatus.Started:
alert("WebCameraStarted result: webcamera started"); // Shows camera started message.
break;
default:
throw new Error("result.startCapturingStatus");
}
}, failureStartCapturingHandler);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);
stopCapturingAsync
()
Promise | Void
async
Stops capturing an image from selected camera.
Returns:
A promise of the result.
Example:
var connector = new buildingLink.Connector();
var connectionSuccededCallback = function() {
// Starts image capturing from selected camera.
connector.webCameraService.startCapturingAsync(true, 25);
// Stops image capturing from selected camera in 5 seconds.
setTimeout(function (){
connector.webCameraService.stopCapturingAsync();
}, 5000);
};
var connectionClosedCallback = function(connectionError) {
alert("Connection failed."); // Shows connection failure message.
};
connector.activate(connectionSuccededCallback, connectionClosedCallback);