Camera
Service URI - luna://com.webos.service.camera
Provides methods that return the information of a camera and microphone.
The Camera Service manages camera/microphone devices that are connected to webOS TV. You can get device URI with this API and get more information on each device with device URI.
Methods
Method | Description | Supported in Emulator |
---|---|---|
getInfo | Returns the detailed information of a device. | No |
getList | Returns a list of camera and microphone devices which are connected to webOS TV. | No |
isCovered | Returns the cover status of the built-in camera. | No |
getInfo
Description
Returns the detailed information of a device. You need to put URI as a parameter which is given by getList() method.
Parameters
Name | Required | Type | Description |
---|---|---|---|
uri | Required | string | Device URI |
Call returns
Name | Required | Type | Description |
---|---|---|---|
returnValue | Required | boolean | Flag that indicates success/failure of the request.
|
errorCode | Optional | number | errorCode contains the error code if the method fails. The method will return errorCode only if it fails. See the Error Codes Reference of this method for more details. |
errorText | Optional | string | errorText contains the error text if the method fails. The method will return errorText only if it fails. See the Error Codes Reference of this method for more details. |
info | Optional | object | Object that holds the detailed information of a device. |
Error reference
Error Code | Error Message |
---|---|
1 | Can not close |
2 | Can not open |
3 | Can not set |
4 | Can not start |
5 | Can not stop |
6 | The camera device is already closed |
7 | The camera device is already opened |
8 | The camera device is already started |
9 | The camera device is already stopped |
10 | The camera device is being updated |
11 | The camera device is busy |
12 | The camera device is not opened |
13 | The camera device is not started |
14 | There is no device |
15 | No response from the device |
16 | Parsing error |
17 | Out of memory |
18 | Out of parameter range |
19 | Parameter is missing |
20 | Service is not ready |
21 | Some parameters are not set |
22 | Too many requests |
23 | Request timeout |
24 | Unknown service |
25 | Unsupported device |
26 | Unsupported format |
27 | Unsupported sampling rate |
28 | Unsupported video size |
29 | Camera firmware is being updated |
30 | Wrong device number |
31 | Session ID error |
32 | Wrong parameter |
33 | Wrong type |
34 | Already acquired |
35 | Unknown error |
36 | Fail to Special effect |
37 | Fail to photo view effect |
38 | Fail to open file |
39 | Fail to remove the file |
40 | Fail to create the directory |
41 | Lack of storage |
42 | Already exists file |
Example
// Example for camera device
var request = webOS.service.request('luna://com.webos.service.camera', {
method: 'getInfo',
parameters: { uri: 'camera://com.webos.service.camera/camera1' },
onSuccess: function (inResponse) {
console.log('Result: ' + JSON.stringify(inResponse));
// To-Do something
},
onFailure: function (inError) {
console.log('Failed to get camera device info');
console.log('[' + inError.errorCode + ']: ' + inError.errorText);
// To-Do something
return;
},
});
// Example for microphone device
var request = webOS.service.request('luna://com.webos.service.camera', {
method: 'getInfo',
parameters: { uri: 'camera://com.webos.service.camera/mic1' },
onSuccess: function (inResponse) {
console.log('Result: ' + JSON.stringify(inResponse));
// To-Do something
},
onFailure: function (inError) {
console.log('Failed to get microphone device info');
console.log('[' + inError.errorCode + ']: ' + inError.errorText);
// To-Do something
return;
},
});
Return example
// Camera device information
{
'returnValue': true,
'info': {
'name': 'BC600 Camera',
'type': 'camera',
'builtin': true,
'details': {
'video': {
'maxWidth': 1920,
'maxHeight': 1080
},
'picture': {
'maxWidth': 3264,
'maxHeight': 2448
},
'format': 'H264ES|H264TS|SECS|MP4|'
}
}
}
// Microphone device information
{
'returnValue': true,
'info': {
'name': 'BC600 Camera',
'type': 'microphone',
'builtin': true,
'details': {
'samplingRate': 'WB',
'codec': 'PCM'
}
}
}
// Failure return
{
'returnValue': false,
'errorCode': '32',
'errorText': 'Wrong param'
}
See also
getList
Description
Returns a list of camera and microphone devices which are connected to webOS TV.
This method provides a subscription. Whenever a device is connected or disconnected, the event occurs. The updated list will be returned for every event.
Parameters
Name | Required | Type | Description |
---|---|---|---|
subscribe | Optional | boolean | Flag that decides whether to subscribe or not.
|
Call returns
Name | Required | Type | Description |
---|---|---|---|
returnValue | Required | boolean | Flag that indicates success/failure of the request.
|
errorCode | Optional | number | errorCode contains the error code if the method fails. The method will return errorCode only if it fails. See the Error Codes Reference of this method for more details. |
errorText | Optional | string | errorText contains the error text if the method fails. The method will return errorText only if it fails. See the Error Codes Reference of this method for more details. |
uriList | Optional | object array | List of devices which are connected to webOS TV. This object holds device type and URI. If there is no connected device, getLIst() will return an empty array. |
subscribed | Optional | boolean | Flag that indicates whether the subscription is enabled or not.
|
Error reference
Error Code | Error Message |
---|---|
1 | Can not close |
2 | Can not open |
3 | Can not set |
4 | Can not start |
5 | Can not stop |
6 | Camera device is already closed |
7 | Camera device is already opened |
8 | Camera device is already started |
9 | Camera device is already stopped |
10 | Camera device is being updated |
11 | Camera device is busy |
12 | Camera device is not opened |
13 | Camera device is not started |
14 | There is no device |
15 | No response from device |
16 | Parsing error |
17 | Out of memory |
18 | Out of parameter range |
19 | Parameter is missing |
20 | Service is not ready |
21 | Some parameters are not set |
22 | Too many requests |
23 | Request timeout |
24 | Unknown service |
25 | Unsupported device |
26 | Unsupported format |
27 | Unsupported sampling rate |
28 | Unsupported video size |
29 | Camera firmware is being updated |
30 | Wrong device number |
31 | Session ID error |
32 | Wrong parameter |
33 | Wrong type |
34 | Already acquired |
35 | Unknown error |
36 | Fail to Special effect |
37 | Fail to photo view effect |
38 | Fail to open file |
39 | Fail to remove file |
40 | Fail to create directory |
41 | Lack of storage |
42 | Already exists file |
Subscription Returns
Name | Required | Type | Description |
---|---|---|---|
uriList | Required | Object array | List of devices which are connected to webOS TV. this object holds device type and URI, If there is no connected device, getList() will return empty array. |
Example
// One-time call
var request = webOS.service.request('luna://com.webos.service.camera', {
method: 'getList',
onSuccess: function (inResponse) {
console.log('Result: ' + JSON.stringify(inResponse));
// To-Do something
},
onFailure: function (inError) {
console.log('Failed to get camera device list');
console.log('[' + inError.errorCode + ']: ' + inError.errorText);
// To-Do something
return;
},
});
// Subscription
var subscriptionHandle;
subscriptionHandle = webOS.service.request('luna://com.webos.service.camera', {
method: 'getList',
parameters: { subscribe: true },
onSuccess: function (inResponse) {
if (typeof inResponse.subscribed != 'undefined') {
if (!inResponse.subscribed) {
console.log('Failed to subscribe the camera device list');
return;
}
}
console.log('Result: ' + JSON.stringify(inResponse));
// To-Do something
},
onFailure: function (inError) {
console.log('Failed to get camera device list');
console.log('[' + inError.errorCode + ']: ' + inError.errorText);
// To-Do something
return;
},
});
...
// If you need to unsubscribe the data, use cancel() method as below
subscriptionHandle.cancel();
Return example
// One-time call return
{
'returnValue': true,
'uriList': [
{
'uri': 'camera://com.webos.service.camera/camera1',
'type': 'camera'
},
{
'uri': 'camera://com.webos.service.camera/mic1',
'type': 'microphone'
}
]
}
// No device connected
{
'returnValue': true,
'uriList': [ ],
'subscribed': true
}
// Failure return
{
'returnValue': false,
'errorCode': '23',
'errorText': 'Request timeout'
}
// When using subscription return
{
'returnValue': true,
'uriList': [
{
'uri': 'camera://com.webos.service.camera/camera1',
'type': 'camera'
},
{
'uri': 'camera://com.webos.service.camera/mic1',
'type': 'microphone'
}
],
'subscribed': true
}
// Subscription return
{
'uriList': [
{
'uri': 'camera://com.webos.service.camera/camera1',
'type': 'camera'
},
{
'uri': 'camera://com.webos.service.camera/mic1',
'type': 'microphone'
}
]
}
// No device connected (Subscription return)
{
'uriList': [ ]
}
See also
isCovered
Description
Returns the cover status of the built-in camera. You need to put URI as a parameter which is given by getList().
Parameters
Name | Required | Type | Description |
---|---|---|---|
uri | Required | string | Device URI |
subscribe | Optional | boolean | Flag that decides whether to subscribe or not.
|
Call returns
Name | Required | Type | Description |
---|---|---|---|
returnValue | Required | boolean | Flag that indicates success/failure of the request.
|
errorCode | Optional | number | errorCode contains the error code if the method fails. The method will return errorCode only if it fails. See the Error Codes Reference of this method for more details. |
errorText | Optional | string | errorText contains the error text if the method fails. The method will return errorText only if it fails. See the Error Codes Reference of this method for more details. |
covered | Optional | boolean | Flag that indicates whether the built-in camera is covered or not.
|
subscribed | Optional | boolean | Flag that indicates whether the subscription is enabled or not.
|
Error reference
Error Code | Error Message |
---|---|
1 | Can not close |
2 | Can not open |
3 | Can not set |
4 | Can not start |
5 | Can not stop |
6 | Camera device is already closed |
7 | Camera device is already opened |
8 | Camera device is already started |
9 | Camera device is already stopped |
10 | Camera device is being updated |
11 | Camera device is busy |
12 | Camera device is not opened |
13 | Camera device is not started |
14 | There is no device |
15 | No response from device |
16 | Parsing error |
17 | Out of memory |
18 | Out of parameter range |
19 | Parameter is missing |
20 | Service is not ready |
21 | Some parameters are not set |
22 | Too many requests |
23 | Request timeout |
24 | Unknown service |
25 | Unsupported device |
26 | Unsupported format |
27 | Unsupported sampling rate |
28 | Unsupported video size |
29 | Camera firmware is being updated |
30 | Wrong device number |
31 | Session ID error |
32 | Wrong parameter |
33 | Wrong type |
34 | Already acquired |
35 | Unknown error |
36 | Fail to Special effect |
37 | Fail to photo view effect |
38 | Fail to open file |
39 | Fail to remove file |
40 | Fail to create directory |
41 | Lack of storage |
42 | Already exists file |
Subscription Returns
Name | Required | Type | Description |
---|---|---|---|
covered | Required | Boolean | Flag that indicates whether the built-in camera is covered or not.
|
Example
// One-time call
var request = webOS.service.request('luna://com.webos.service.camera', {
method: 'isCovered',
parameters: { id: 'camera://com.webos.service.camera/camera1' },
onSuccess: function (inResponse) {
console.log('Result: ' + JSON.stringify(inResponse));
// To-Do something
},
onFailure: function (inError) {
console.log('Failed to get camera cover state');
console.log('[' + inError.errorCode + ']: ' + inError.errorText);
// To-Do something
return;
},
});
// Subscription
var subscriptionHandle;
subscriptionHandle = webOS.service.request('luna://com.webos.service.camera', {
method: 'isCovered',
parameters: {
id: 'camera://com.webos.service.camera/camera1',
subscribe: true,
},
onSuccess: function (inResponse) {
if (typeof inResponse.subscribed != 'undefined') {
if (!inResponse.subscribed) {
console.log('Failed to subscribe the camera cover state');
return;
}
}
console.log('Result: ' + JSON.stringify(inResponse));
// To-Do something
},
onFailure: function (inError) {
console.log('Failed to get camera cover state');
console.log('[' + inError.errorCode + ']: ' + inError.errorText);
// To-Do something
return;
},
});
...
// If you need to unsubscribe the data, use cancel() method as below
subscriptionHandle.cancel();
Return example
// One-time call return
{
'returnValue': true,
'covered': true
}
// Subscription return
{
'returnValue': false,
'covered': false,
'subscribed': true
}
See also
Object
deviceInfo object
The object that holds the detailed information of camera or microphone devices.
{
'name': string,
'type': string,
'builtin': boolean,
'details': deviceDetail object
}
Name | Required | Type | Description |
---|---|---|---|
name | Required | string | Device name |
type | Required | string | Device type (camera or microphone) |
builtin | Required | boolean | Flag that indicates whether the device is built in or not. |
details | Required | object | Object that holds information about recording resolution, supported video format, sampling rate, and audio code. |
uriList object
List of devices which are connected to webOS TV. This object holds device type and URI.
{
'uri': string,
'type': string
}
Name | Required | Type | Description |
---|---|---|---|
uri | Required | string | URI of device |
type | Required | string | Type of device that distinguishes between camera and microphone. |
deviceDetail object
The object that holds more detailed information for a camera and microphone.
{
'video': videoDetail Object,
'picture': pictureDetail Object,
'format': String,
'samplingRate': String,
'codec': String
}
Name | Required | Type | Description |
---|---|---|---|
video | Optional | object | Object that holds a supported maximum video frame size for video recording. |
picture | Optional | object | Object that holds a supported maximum image size for picture taking. |
format | Optional | string | Supported Video format for video recording. In return string, pipe character (|) is used as a delimiter to distinguish multi-formats. |
samplingRate | Optional | string | Supported sampling rate for audio recording. |
codec | Optional | string | Supported audio codec for audio recording. |
videoDetail object
The object that holds a supported maximum video frame size for video recording. This object has maximum width and height.
{
'maxWidth': Number,
'maxHeight': Number
}
Name | Required | Type | Description |
---|---|---|---|
maxWidth | Required | number | Maximum width that camera device supports for video recording |
maxHeight | Required | number | Maximum height that camera device supports for video recording. |
pictureDetail object
The object that holds a supported maximum image size for picture taking. This object has maximum width and height.
{
'maxWidth': Number,
'maxHeight': Number
}
Name | Required | Type | Description |
---|---|---|---|
maxWidth | Required | number | Maximum width that camera device supports for picture taking |
maxHeight | Required | number | Maximum height that camera device supports for picture taking |