Camera API (Tizen Extension)
Since: 2.2
Table of Contents
- 1. Interfaces
- 1.1. NavigatorTizenCamera
- 1.2. TizenCamera
- 1.3. CreateCameraSuccessCallback
- 1.4. CameraErrorCallback
- 1.5. CameraControl
- 1.6. CameraControlSettings
- 1.7. CameraSuccessCallback
- 1.8. CameraSettingErrorCallback
- 1.9. CameraMediaRecorder
- 1.10. CameraImageCapture
- 1.11. CameraCapabilities
- 1.12. CameraSize
- 1.13. CameraArea
- 1.14. CameraPictureSettings
- 1.15. CameraRecorderSettings
- 1.16. CameraError
- 1.17. CameraSettingErrors
- 2. Related Feature
- 3. Full WebIDL
Summary of Interfaces and Methods
1. Interfaces
1.2. TizenCamera
[NoInterfaceObject] interface TizenCamera {
void createCameraControl(MediaStream stream, CreateCameraSuccessCallback successCallback, CameraErrorCallback errorCallback);
};
Since: 2.2
Methods
createCameraControl-
Asynchronously create CameraControl object using input stream.
void createCameraControl(MediaStream stream, CreateCameraSuccessCallback successCallback, CameraErrorCallback errorCallback);
Since: 2.2
Privilege level: public
Privilege: http://tizen.org/privilege/camera
Privilege: http://tizen.org/privilege/audiorecorder
Remark : For video recording and image capture, use http://tizen.org/privilege/camera privilege. For audio recording, use http://tizen.org/privilege/audiorecorder privilege.
Parameters:
- stream: Stream object obtained from getUserMedia. "audio" of MediaStreamOptions dictionary is supported
- successCallback: The method to invoke when CameraControl object is created successfully.
- errorCallback: The method to invoke when an error occurs.
Code example:
navigator.webkitGetUserMedia({video:true,audio:true}, gotStream, noStream); /* For audio recording, use the API as following: navigator.webkitGetUserMedia({video:false,audio:true}, gotStream, noStream); WARNING : Audio recording is not supported in initial target platform version 2.2.1 Version can be checked by tizen.systeminfo.getCapability("http://tizen.org/feature/platform.version") */ function gotStream(stream) { navigator.tizCamera.createCameraControl(stream, gotCamera, noCamera); } function noStream() {} function gotCamera(cam) { /* CameraControl */ camera = cam; } function noCamera() {}
1.3. CreateCameraSuccessCallback
callback interface CreateCameraSuccessCallback {
void handleEvent(CameraControl cameraControl);
};
Since: 2.2
Methods
handleEvent-
Called on successful creation of Camera Control object.
void handleEvent(CameraControl cameraControl);
Since: 2.2
Parameters:
- cameraControl: Created camera control.
1.4. CameraErrorCallback
callback interface CameraErrorCallback {
void handleEvent(CameraError error);
};
Since: 2.2
Methods
handleEvent-
Called upon Camera API call errors.
void handleEvent(CameraError error);
Since: 2.2
Parameters:
- error: Error that occurred.
1.5. CameraControl
[NoInterfaceObject] interface CameraControl {
readonly attribute CameraCapabilities capabilities;
readonly attribute CameraMediaRecorder recorder;
readonly attribute CameraImageCapture image;
void applySettings(CameraControlSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
boolean autoFocus();
void release();
};
Since: 2.2
Attributes
-
readonly
CameraCapabilities capabilitiesRepresents a collection of camera capabilities that camera device provides.
Since: 2.2
-
readonly
CameraMediaRecorder recorderRepresents an object defines media recording related methods.
Since: 2.2
-
readonly
CameraImageCapture imageRepresents an object defines image capture related methods.
Since: 2.2
Methods
applySettings-
Method to apply new settings to CameraControl object.
void applySettings(CameraControlSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
Since: 2.2
Parameters:
- settings: Settings for camera.
- onsuccess: The method to invoke when a new setting is applied successfully.
- onerror: The method to invoke when setting related error occurs.
autoFocus-
Method responsible for autofocus.
boolean autoFocus();Since: 2.2
release-
Method to release the camera resource when an application exits the use of camera.
void release();Since: 2.2
1.6. CameraControlSettings
dictionary CameraControlSettings {
CameraArea focusArea;
};
Since: 2.2
Dictionary members
- CameraArea focusArea
-
Specifies focus area bounds.
Since: 2.2
1.7. CameraSuccessCallback
callback interface CameraSuccessCallback {
void handleEvent();
};
Since: 2.2
Methods
handleEvent-
Called on success.
void handleEvent();Since: 2.2
1.8. CameraSettingErrorCallback
callback interface CameraSettingErrorCallback {
void handleEvent(CameraSettingErrors errors);
};
Since: 2.2
Methods
handleEvent-
Called on error.
void handleEvent(CameraSettingErrors errors);
Since: 2.2
Parameters:
- errors: Containing error codes.
1.9. CameraMediaRecorder
[NoInterfaceObject] interface CameraMediaRecorder {
attribute onrecordingstatechange;
void applySettings(CameraRecorderSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
void start(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
void stop(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
};
Since: 2.2
Attributes
-
EventHandler onrecordingstatechangeRecording state change event handler.
Since: 2.2
Methods
applySettings-
Set new settings for camera recording.
void applySettings(CameraRecorderSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
Since: 2.2
Parameters:
- settings: New settings for camera recording.
- onsuccess: The method to invoke when new settings is applied successfully.
- onerror: The method to invoke when some error occurs.
start-
Start recording video using camera device.
void start(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
Since: 2.2
Parameters:
- onsuccess: The method to invoke when recording is started successfully.
- onerror: The method to invoke when some error occurs.
stop-
Stop recording video using camera device.
void stop(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
Since: 2.2
Parameters:
- onsuccess: The method to invoke when recording is started successfully.
- onerror: The method to invoke when en error occurs.
1.10. CameraImageCapture
[NoInterfaceObject] interface CameraImageCapture {
attribute onshutter;
void applySettings(CameraPictureSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
void takePicture(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
};
Since: 2.2
Attributes
-
EventHandler onshutterShutter event handler.
Since: 2.2
Methods
applySettings-
Set new settings for camera image capture.
void applySettings(CameraPictureSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
Since: 2.2
Parameters:
- settings: New settings for photo.
- onsuccess: The method to invoke when new settings is applied successfully.
- onerror: The method to invoke when en error occurs.
takePicture-
Take picture using camera.
void takePicture(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
Since: 2.2
Parameters:
- onsuccess
- onerror
1.11. CameraCapabilities
[NoInterfaceObject] interface CameraCapabilities {
readonly attribute CameraSize[] pictureSizes;
readonly attribute DOMString[] pictureFormats;
readonly attribute DOMString[] recordingFormats;
};
Since: 2.2
Attributes
-
readonly
CameraSize[]
pictureSizesArray containing available picture sizes.
The following values must be supported:
Device
- [320, 240]
- [320, 320]
- [640, 480]
- [640, 640]
- [1280, 720]
- [1280, 960]
Emulator
- [320, 240]
- [640, 480]
Since: 2.2
-
readonly
DOMString[]
pictureFormatsArray containing available picture formats.
The following formats must be supported:
- "jpeg"
- "png"
Since: 2.2
-
readonly
DOMString[]
recordingFormatsArray containing available picture formats.
The following formats must be supported:
- "3gp"
- "amr"
Since: 2.2
1.12. CameraSize
dictionary CameraSize {
long width;
long height;
};
Since: 2.2
Dictionary members
- long width
-
Width of photo/video.
Since: 2.2
- long height
-
Height of photo/video.
Since: 2.2
1.13. CameraArea
dictionary CameraArea {
long top;
long left;
long bottom;
long right;
};
Since: 2.2
Dictionary members
- long top
-
Top position of selected area.
Since: 2.2
- long left
-
Left position of selected area.
Since: 2.2
- long bottom
-
Bottom position of selected area.
Since: 2.2
- long right
-
Right position of selected area.
Since: 2.2
1.14. CameraPictureSettings
dictionary CameraPictureSettings {
CameraSize pictureSize;
DOMString pictureFormat;
DOMString fileName;
};
Since: 2.2
Dictionary members
- CameraSize pictureSize
-
Contains size of picture. Only sizes in CameraCapabilities are allowed.
Since: 2.2
- DOMString pictureFormat
-
Picture format. Available formats described in CameraCapabilities.pictureFormats.
Since: 2.2
- DOMString fileName
-
File name (without directory) of the picture taken. Files are stored in "/opt/usr/media/Images".
Since: 2.2
1.15. CameraRecorderSettings
dictionary CameraRecorderSettings {
long maxFileSizeBytes;
DOMString recordingFormat;
DOMString fileName;
};
Since: 2.2
Dictionary members
- long maxFileSizeBytes
-
Max size of file in bytes. Maximum file size is 10MB (10485760 bytes).
Since: 2.2
- DOMString recordingFormat
-
Format of recording video. Available formats are listed in CameraCapabilities.recordingFormats.
Since: 2.2
- DOMString fileName
-
File name (without directory) of the recorded video. Files are stored in "/opt/usr/media/Videos".
Since: 2.2
1.16. CameraError
[NoInterfaceObject] interface CameraError {
readonly attribute unsigned short code;
const unsigned short CREATION_FAILED = 0;
const unsigned short PERMISSION_DENIED = 1;
const unsigned short NO_CAMERA = 2;
const unsigned short PIPELINE_ERR = 3;
const unsigned short FILE_WRITE_ERR = 4;
};
Since: 2.2
Constants
Since: 2.2
Since: 2.2
Since: 2.2
Since: 2.2
Since: 2.2
Attributes
-
readonly
unsigned short codeError code.
Since: 2.2
1.17. CameraSettingErrors
[NoInterfaceObject] interface CameraSettingErrors {
readonly attribute unsigned short[] codes;
const unsigned short FOCUS_AREA_ERR = 0;
const unsigned short PICTURE_SIZE_ERR = 1;
const unsigned short PICTURE_FORMAT_ERR = 2;
const unsigned short RECORDING_FORMAT_ERR = 3;
const unsigned short FILENAME_ERR = 4;
const unsigned short MAX_FILE_SIZE_BYTES_ERR = 5;
};
Since: 2.2
Constants
Since: 2.2
Since: 2.2
Since: 2.2
Since: 2.2
Since: 2.2
Since: 2.2
Attributes
-
readonly
unsigned short[]
codesError code.
Since: 2.2
2. Related Feature
To guarantee the running of this application on a device with audio recording, define the following requirements in the config file:
To guarantee the running of this application on a device with image capture, define the following requirements in the config file:
To guarantee the running of this application on a device with video recording, define the following requirements in the config file:
3. Full WebIDL
module Camera {
[NoInterfaceObject] interface NavigatorTizenCamera {
readonly attribute TizenCamera tizCamera;
};
Navigator implements NavigatorTizenCamera;
[NoInterfaceObject] interface TizenCamera {
void createCameraControl(MediaStream stream, CreateCameraSuccessCallback successCallback, CameraErrorCallback errorCallback);
};
callback interface CreateCameraSuccessCallback {
void handleEvent(CameraControl cameraControl);
};
callback interface CameraErrorCallback {
void handleEvent(CameraError error);
};
[NoInterfaceObject] interface CameraControl {
readonly attribute CameraCapabilities capabilities;
readonly attribute CameraMediaRecorder recorder;
readonly attribute CameraImageCapture image;
void applySettings(CameraControlSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
boolean autoFocus();
void release();
};
dictionary CameraControlSettings {
CameraArea focusArea;
};
callback interface CameraSuccessCallback {
void handleEvent();
};
callback interface CameraSettingErrorCallback {
void handleEvent(CameraSettingErrors errors);
};
[NoInterfaceObject] interface CameraMediaRecorder {
attribute onrecordingstatechange;
void applySettings(CameraRecorderSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
void start(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
void stop(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
};
[NoInterfaceObject] interface CameraImageCapture {
attribute onshutter;
void applySettings(CameraPictureSettings settings, CameraSuccessCallback onsuccess, CameraSettingErrorCallback onerror);
void takePicture(CameraSuccessCallback onsuccess, CameraErrorCallback onerror);
};
[NoInterfaceObject] interface CameraCapabilities {
readonly attribute CameraSize[] pictureSizes;
readonly attribute DOMString[] pictureFormats;
readonly attribute DOMString[] recordingFormats;
};
dictionary CameraSize {
long width;
long height;
};
dictionary CameraArea {
long top;
long left;
long bottom;
long right;
};
dictionary CameraPictureSettings {
CameraSize pictureSize;
DOMString pictureFormat;
DOMString fileName;
};
dictionary CameraRecorderSettings {
long maxFileSizeBytes;
DOMString recordingFormat;
DOMString fileName;
};
[NoInterfaceObject] interface CameraError {
readonly attribute unsigned short code;
const unsigned short CREATION_FAILED = 0;
const unsigned short PERMISSION_DENIED = 1;
const unsigned short NO_CAMERA = 2;
const unsigned short PIPELINE_ERR = 3;
const unsigned short FILE_WRITE_ERR = 4;
};
[NoInterfaceObject] interface CameraSettingErrors {
readonly attribute unsigned short[] codes;
const unsigned short FOCUS_AREA_ERR = 0;
const unsigned short PICTURE_SIZE_ERR = 1;
const unsigned short PICTURE_FORMAT_ERR = 2;
const unsigned short RECORDING_FORMAT_ERR = 3;
const unsigned short FILENAME_ERR = 4;
const unsigned short MAX_FILE_SIZE_BYTES_ERR = 5;
};
};