Camera

An application can initiate capture of a still image or a video by doing a cross-app launch of the Camera application. You can specify a file name for the captured image or video, or let the Camera application assign a default name. After the capture is completed or cancelled, the original application resumes control.

Method

This section describes the following method:

  • capture

capture

Initiates capture of a still image or video.

Required parameters:

  • appId
  • name
  • sublaunch

Parameters

Parameter Type Description
appId string Set to "com.palm.app.camera".
filename string Optional. A full path to the location where the image or video file should be saved (should be beneath /media/internal).
name string Set to "capture".
sublaunch boolean Indicates that control must be returned to the calling application after taking the picture or cacelling the application.
mode "still" | "video" Optional. Specifies whether a still image (the default) or a video should be captured

Return Handling

onSuccess

Attribute Type Description
filename string The full path to the location where the image or video file was saved.
returnValue boolean true

onFailure

Attribute Type Description
returnValue boolean false

Example

This example initiates a still image capture, using a default filename:

this.controller.stageController.pushScene(
  { appId: "com.palm.app.camera", name: "capture" },
  { sublaunch: true }
); 

This example initiates a video capture, using a specific filename (note the "mode" and "filename" parameters):

this.controller.stageController.pushScene(
  { appId: "com.palm.app.camera", name: "capture" },
  { sublaunch: true, mode: "video",
      filename: "/media/internal/myApp/capturedVideo.mp4" }
); 

Sample Code

This section shows sample code.

MySceneAssistant = Class.create({ initialize : function(params) { ... },
  setup : function() {
      this.cameraButtonElement = this.controller.get('camera_button');
      this.cameraButtonElement.observe(
          Mojo.Event.tap,
          this.handleNewPicture.bindAsEventListener(this)
      );
      ...
  },
  activate : function(params) {
      if (!params){
          return;
      }
      if (params.filename) {
          Mojo.Log.info("new pic with path:", params.filename);
          // Now go use the new image in params.filename
          ...
      }
  },
  handleNewPicture : function(event) {
      var d = new Date().getTime();
      var filestring = "/media/internal/app_images/"+d+".jpg";
      this.controller.stageController.pushScene(
          { appId :'com.palm.app.camera', name: 'capture' },
          { sublaunch : true, filename: filestring }
      );
  },
  ...
});