Camera

Service URI - luna://com.webos.service.camera

Provides methods that return the information of camera and microphone.

  

The Camera Service manages camera/microphone devices which are connected to webOS TV. You can get device URI with this API and get more information of 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

 

Open All


getInfo
  • Description

    Returns the detailed information of a device. You need to put URI as a parameter which is given by getList() method.

    Syntax

    getInfo(string uri)

    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.
    • true: Success
    • false: Failure
    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 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 samplingrate
    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

    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 subscription. Whenever a device is connected or disconnected, event occurs. Updated list will be returned for every event.

Syntax

getList([boolean subscribe])

Parameters

Name

Required

Type

Description

subscribe Optional boolean

Flag that decides whether to subscribe or not.

  • true: Subscribe.
  • false: Do not subscribe. Call the method only once. (Default)

Call Returns

Name

Required

Type

Description

returnValue Required boolean  Flag that indicates success/failure of the request.
  • true: Success
  • false: Failure
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 empty array.
subscribed Optional boolean

Flag that indicates whether the subscription is enabled or not.

  • true: Enabled
  • false: Not enabled.

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 samplingrate
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().

Syntax

isCovered(string uri[, boolean subscribe])

Parameters

Name

Required

Type

Description

uri Required string

Device URI

subscribe Optional boolean

Flag that decides whether to subscribe or not.

  • true: Subscribe.
  • false: Do not subscribe. Call the method only once. (Default)

Call Returns

Name

Required

Type

Description

returnValue Required boolean  Flag that indicates success/failure of the request.
  • true: Success
  • false: Failure
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.

  • true: Covered
  • false: Not covered
subscribed Optional boolean

Flag that indicates whether the subscription is enabled or not.

  • true: Enabled
  • false: Not enabled.

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 samplingrate
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.

  • true: Covered
  • false: Not covered

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

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 device is built in or not.

details

Required object Object that holds infomation about recoding 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

Object that holds more detailed information for camera and microphone.

{
    "video": videoDetail Object,
    "picture": pictureDetail Object,
    "format": String,
    "samplingRate": String,
    "codec": String
} 

Name

Required

Type

Description

video Optional obbject 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 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

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

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


Navigation