非標準
この機能は現在 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." } }