非標準
この機能は現在 W3C の標準化のプロセスに乗っていませんが、Firefox OS プラットフォームではサポートされています。将来は動作が変わるかもしれませんし、他のブラウザーで広くサポートされているわけでもありませんが、Firefox OS アプリ専用のコードで使うには適しています。
この API は Firefox OS 上の特権付きアプリ、または認定済みアプリからのみ有効になります。
CameraManager.getCamera()
メソッドを使用してカメラへの参照を取得する時、成功時に呼び出されるコールバック関数を指定します。この関数は、引数として CameraControl
オブジェクトを受け取ります。このオブジェクトのメソッドとプロパティは、カメラの管理と使用に使います。
プロパティ
CameraControl.capabilities
読取専用CameraCapabilities
オブジェクトは、与えられたカメラについてのすべてのキャパビリティ示します。CameraControl.effect
- カメラで使用するエフェクトを定義する文字列 (デフォルトは
none
) です。この値は、CameraCapabilities.effects
に定義された値のいずれかでなければなりません。 CameraControl.exposureCompensation
読取専用- カメラの露光補正に使用する値です。この属性は読み取り専用です。露光値を変更するには、
CameraControl.setExposureCompensation()
メソッドを呼び出す必要があります。 CameraControl.flashMode
- フラッシュの仕方を定義する文字列です。何らかの値が設定されると、カメラにフラッシュが搭載されていれば、この値はデフォルトで
auto
、搭載されていなければnone
になります。値を設定する時は、CameraCapabilities.flashModes
に定義されたオプションのリストから選択しなければなりません。 CameraControl.focalLength
読取専用- カメラの焦点距離を絞るミリメートル単位の数値です。
CameraControl.focusAreas
- カメラのオートフォーカスする領域を定義するオブジェクトの
配列
です。 CameraControl.focusDistanceFar
読取専用- この値は、画像の被写界深度を定義するための
CameraControl.focusDistanceNear
と共に使用する、メートル単位の距離です。このプロパティの値は、Infinity
になる可能性があります。 CameraControl.focusDistanceNear
読取専用- この値は、画像の被写界深度を定義するための
CameraControl.focusDistanceFar
と共に使用する、メートル単位の距離です。 CameraControl.focusDistanceOptimum
読取専用- この値は、被写体が最も鮮明に映るメートル単位の距離です。
CameraControl.focusMode
- カメラが使用するフォーカスモードの種類を定義する文字列 (デフォルトで
auto
またはfixed
) です。この値はCameraCapabilities.focusModes
から選択されなければなりません。 CameraControl.meteringAreas
- カメラがオートフォーカスする領域を定義するオブジェクトの
配列
です。 CameraControl.onShutter
- カメラの "shutter" イベントのイベントハンドラです。シャッター音または視覚的なシャッター効果を発生させる関数を指定します。
CameraControl.onClosed
- 同じアプリ内で新しい
CameraControl
オブジェクトに引き継がれた時に呼び出されるイベントハンドラです。 CameraControl.onRecorderStateChange
- レコーダーの状態が変更された時、つまり、記録処理中にエラーが発生した時や記録データのいずれかの制限 (
CameraControl.startRecording()
参照) に達した時に呼び出される関数です。 CameraControl.sceneMode
- カメラが使用するシーンモードを定義する文字列 (デフォルトで
auto
) です。この値は、CameraCapabilities.sceneModes
から選択されなければなりません。 CameraControl.whiteBalanceMode
- カメラのホワイトバランスのモードを定義する文字列 (デフォルトで
auto
) です。この値は、CameraCapabilities.whiteBalanceModes
から選択されなければなりません。 CameraControl.zoom
- カメラが使用するズームファクタモードの種類を定義する数値 (デフォルトで
1
) です。この値は、CameraCapabilities.zoomRatios
から選択されなければなりません。
メソッド
CameraControl.autoFocus()
- カメラ画像のフォーカスを合わせます。
CameraControl.getPreviewStream()
- カメラから動画ストリームを取得します。このメソッドは任意のタイミングで使用できます。
CameraControl.getPreviewStreamVideoMode()
- カメラから動画ストリームを取得します。特定の動画モードで使用できます。
CameraControl.release()
- カメラをリリースし、他のアプリケーションがカメラを使えるようにします。
CameraControl.resumePreview()
CameraControl.takePicture()
メソッドの呼び出しで一時停止された動画ストリームのプレビューを再開します。CameraControl.setConfiguration()
- アドホックな設定変更をします。
CameraControl.setExposureCompensation()
- 露光補正ファクタを指定します。
CameraControl.startRecording()
- 動画ストリームの記録を開始します。
CameraControl.stopRecording()
- 動画ストリームの記録を停止します。
CameraControl.pauseRecording()
- 動画ストリームの記録を一時停止します。
CameraControl.resumeRecording()
- 一時停止された動画ストリームの記録を再開します。
CameraControl.takePicture()
- 写真を撮ります。写真データは
Blob
で受け取ります。
仕様
標準仕様には含まれていません。WebRTC がモバイル端末で広くサポートされるようになった時、これと置き換えられる予定です。
許可設定
Firefox OS 1.4 まで、Camera API は Certified API だったためサードパーティアプリからはアクセスできませんでした。Firefox OS 2.0 からは許可レベルが Privileged に下げられたため、開発者が独自のアプリで利用できるようになりました。
"permissions": {
"camera": {
"description": "Required for accessing cameras on the device."
}
}