B2G OS

CameraManager.getCamera()

非標準
この機能は現在 W3C の標準化のプロセスに乗っていませんが、Firefox OS プラットフォームではサポートされています。将来は動作が変わるかもしれませんし、他のブラウザーで広くサポートされているわけでもありませんが、Firefox OS アプリ専用のコードで使うには適しています。

この API は Firefox OS 上の特権付きアプリ、または認定済みアプリからのみ有効になります。

概要

このメソッドは、端末上の利用可能なカメラの一つに、そのカメラの識別子を指定してアクセスするために使用します。利用可能なカメラのリストは、CameraManager.getListOfCameras() メソッドを呼び出して取得してください。

構文 (Firefox OS 2.1 まで)

CameraManager.getCamera(camera, cameraConfiguration, onsuccess[, onerror]);

引数

camera
利用したいカメラを指定します (端末には複数のカメラが搭載されているでしょう)。
cameraConfiguration
このカメラのオプションを設定するオブジェクト: mode, previewSize および recorderProfile
onsuccess
CameraControl オブジェクトを引数に取るコールバック関数。
onerror
エラー文字列を引数に取るオプションのコールバック関数。

var options = {
  mode: 'picture',
  recorderProfile: 'jpg',
  previewSize: {
    width: 352,
    height: 288
  }
};

var camera = navigator.mozCameras.getListOfCameras()[0];

function onSuccess(camera) {
  // Do stuff with the camera
};

function onError(error) {
  console.warn(error);
};

navigator.mozCameras.getCamera(camera, options, onSuccess, onError);

構文 (Firefox OS 2.2 以降)

Promise CameraManager.getCamera(camera, cameraConfiguration);

Parameters

camera
利用したいカメラを指定します (端末には複数のカメラが搭載されているでしょう)。
cameraConfiguration
このカメラのオプションを設定するオブジェクト: mode, previewSize および recorderProfile

戻り値

Promise を返します。Promise の .then() 関数は以下の 2 個の引数を受け取ります:

onsuccess
カメラオブジェクトを引数に取るコールバック関数。このオブジェクトには、CameraControl オブジェクトである camera プロパティと端末の実際の設定値を含む configuration プロパティが含まれます。
onerror
エラー文字列を引数に取るオプションのコールバック関数。

var options = {
  mode: 'picture',
  recorderProfile: 'jpg',
  previewSize: {
    width: 352,
    height: 288
  }
};

var camera = navigator.mozCameras.getListOfCameras()[0];

function onSuccess(cameraObj) {
  var cameraControl = cameraObj.camera;
  // Do stuff with the cameraControl
};

function onError(error) {
  console.warn(error);
};

navigator.mozCameras.getCamera(camera, options).then(onSuccess, onError);

仕様

標準仕様には含まれていません。WebRTC がモバイル端末で広くサポートされるようになった時、これと置き換えられる予定です。

許可設定

Firefox OS 1.4 まで Camera API は Certified API だったため、サードパーティアプリからはアクセスできませんでした。Firefox OS 2.0 からは許可レベルが Privileged に下げられたため、開発者が独自のアプリで利用できるようになりました。

"type": "privileged"
"permissions": {
  "camera": {
    "description": "Required for accessing cameras on the device."
  }
}

関連情報

ドキュメントのタグと貢献者

このページの貢献者: Marsf
最終更新者: Marsf,