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 Include the following check and guideline for the end user: if (tizen.systeminfo.getCapabilities().platformVersion === "2.2.1") { <Inform the user to upgrade his/her system OS to properly use this application> } */ 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; }; };