|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
Objectcom.docomostar.opt.device.CameraFinder
public class CameraFinder
カメラファインダ制御機能を提供するクラスです。 カメラ機能、コード認識機能および動作認識機能と同じカメラデバイスを使用します。
はじめに、カメラファインダ制御機能の用語を定義します。
次に、カメラファインダ制御機能の状態を定義します。
| 状態 | 説明 |
|---|---|
| START | カメラデバイス起動中であり、ファインダ表示面にファインダデータが描画されている状態 |
| STOP | カメラデバイス停止中であり、ファインダ表示面が未描画である状態 |
getCameraFinder(int)
メソッドによるインスタンス生成時のカメラファインダ制御機能の初期状態は、
STOP 状態です。
start() メソッドを呼び出しにより、
ネイティブ側で必要なカメラのデバイスリソース獲得および初期化が行われ、
カメラファインダ制御機能は START 状態に遷移します。
START 状態においては以下の振る舞いをします。
透過色が描画されている領域については、
カレントフレームが透過されることにより、
ファインダ表示面に描画されたファインダデータが可視化されます。
stop() メソッドを呼び出しにより、カメラファインダ制御機能は STOP 状態に遷移します。
また、START 状態で Star アプリがサスペンドした場合も、STOP 状態に遷移します。
STOP 状態においてのみ以下の設定が可能です。 START 状態で設定を行った場合は設定自体が無視されます。
カメラファインダ制御機能の設定が、 Camera オブジェクトまたは CodeReader オブジェクトが保持する設定状態及びデータに対して、 影響を与えることはありません。 カメラデバイスを利用するネイティブ機能にも影響を与えることもありません。 また、Camera 機能または CodeReader 機能の設定はこのクラスのオブジェクトの設定に影響を与えません。
カメラファインダ制御機能が START 状態であっても、 Camera 機能を起動し撮影した場合、 Camera オブジェクトから撮影画像を取り出せることを保証します。 同様に、CodeReader 機能でコード認識を行った場合も、 CodeReader オブジェクトからコード認識結果を取り出せることを保証します。
ネイティブのカメラ機能またはネイティブのコード認識機能が起動している状態で、
マルチタスクにより Star アプリに処理を移しても、
カメラファインダ制御機能を利用することはできません。
また、カメラファインダ制御機能においては、複数のカメラデバイスを同時に起動する事はできません。
このような場合は start() を呼び出した時に例外が発生します。
ネイティブのカメラ機能またはネイティブのコード認識機能が停止している状態においては、 カメラファインダ制御機能を利用することができます。 ネイティブのカメラ機能で撮影したデータを保存せずに、 マルチタスクにより Star アプリに処理が移った場合もカメラファインダ制御機能を利用することができます。 その場合、再びネイティブのカメラ機能に戻ることでデータを保存可能ことができます。 ネイティブのコード認識機能の読み込みでデータ保存していない場合も同様です。
カメラファインダ機能は、
GestureReader 機能または RawImageCapture 機能と同時に起動することはできません。
これらの機能を起動中に start() を呼び出すと、
例外 DeviceException(BUSY_RESOURCE) が発生します。
| コンストラクタの概要 | |
|---|---|
protected |
CameraFinder()
アプリケーションが直接このコンストラクタを呼び出して オブジェクトを生成することはできません。 |
| メソッドの概要 | |
|---|---|
int[] |
getAvailableFocusModes()
端末で設定できるフォーカスの種類のリストを取得します。 |
int[][] |
getAvailableViewFinderSizes()
設定可能なカメラファインダのサイズを取得します。 |
static CameraFinder |
getCameraFinder(int id)
CameraFinder オブジェクトを取得します。 |
int |
getFocusMode()
フォーカスの設定状態を取得します。 |
int |
getTransparentColor()
この端末に設定されているカメラファインダ機能使用時の透過色を取得します。 |
float[] |
getViewAngleSize(int width,
int height)
カメラファインダのサイズに対する画角を取得します。 |
int[] |
getViewFinderArea()
カメラファインダの表示領域の設定状態を取得します。 |
void |
setFocusMode(int mode)
フォーカスを設定します。 |
void |
setViewFinderArea(int width,
int height,
int sx,
int sy)
カメラファインダの表示領域を設定します。 |
void |
start()
カメラデバイスを起動して START 状態にします。 |
void |
stop()
カメラデバイスを停止して STOP 状態にします。 |
| クラス Object から継承されたメソッド |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
protected CameraFinder()
| メソッドの詳細 |
|---|
public static CameraFinder getCameraFinder(int id)
CameraFinder オブジェクトを取得します。
カメラIDに対してこのメソッドが初めて呼ばれた場合はオブジェクトを生成して返します。 以後、同じカメラ ID に対しては、常に同じオブジェクトへの参照を返します。
Star アプリから制御可能なカメラデバイスの台数、及びカメラ ID とカメラデバイスの対応関係は機種依存です。
Star アプリから制御可能なカメラデバイスのうち、カメラファインダ機能をサポートしないカメラ ID が存在することがあります。 このカメラ ID を指定した場合、例外 UnsupportedOperationException が発生します。
id - カメラ ID を指定します。カメラIDについては Camera.getCamera(int)
メソッドを参照してください。
com.docomostar.lang.UnsupportedOperationException -
IllegalArgumentException -
com.docomostar.device.DeviceException - public int[] getAvailableFocusModes()
端末で設定できるフォーカスの種類のリストを取得します。
リストの値は、Camera クラスで定義されているフォーカスの種類の定数になります。
フォーカス切替が未サポートである場合には、このメソッドは Camera.FOCUS_NORMAL_MODE を返します。
フォーカス切替がハードウェアによる機構である場合には、このメソッドは Camera.FOCUS_HARDWARE_SWITCH
を返します。この場合、Star アプリからフォーカス制御をすることはできません。
リストの取得は START/STOP 状態に関わらず可能です。
public void setFocusMode(int mode)
getAvailableFocusModes() で取得したリストから任意の値を設定します。
引数 mode に指定する値は、Camera クラスで定義されているフォーカスの種類の定数になります。
getAvailableFocusModes() で取得したリストにない値を指定した場合には例外が発生します。
フォーカス切替がハードウェアによる機構である場合には、引数 mode に
Camera.FOCUS_HARDWARE_SWITCH
が指定されても何も行わずに無視されます。
START 状態時にこのメソッドが呼び出された場合、設定は行われずに無視されます。
mode - フォーカスの種類の値を指定します。
IllegalArgumentException -
public int getFocusMode()
フォーカスの設定状態を取得します。
取得した値は、Camera クラスで定義されているフォーカスの種類の定数になります。
最後に setFocusMode(int) で設定した値を返します。
一度も setFocusMode(int) を呼び出していない状態でこのメソッドを呼び出した場合に、
どのような値が取得されるかは機種依存です。
フォーカス切り替えが未サポートである場合には、フォーカスの設定状態として Camera.FOCUS_NORMAL_MODE を
返します。
フォーカス切り替えがハードウェアによる機構である場合には、このメソッドは Camera.FOCUS_HARDWARE_SWITCH
を返します。この場合、Star アプリからフォーカス制御することはできません。
フォーカス設定状態の取得は START/STOP 状態に関わらず可能です。
public int[][] getAvailableViewFinderSizes()
設定可能なカメラファインダのサイズを取得します。戻り値は、幅、高さの順でピクセル数が指定される二次元配列です。 例えば、240×320、240×400の2つのサイズが設定可能な場合、戻り値の内容は次のようになります。
{{240, 320}, {240, 400}}
このメソッドは、縦画面と横画面の区別無くサポートしているカメラファインダのサイズを返します。 そのため縦画面時(横画面時)のみの使用を想定しているサイズを、横画面時(縦画面時)に設定することができない場合があります。
設定可能なカメラファインダのサイズの取得は START/STOP 状態に関わらず可能です。
public void setViewFinderArea(int width,
int height,
int sx,
int sy)
カメラファインダの表示領域を設定します。 カメラファインダの表示領域として、矩形領域のサイズと左上座標を指定します。
引数 width、height に指定する値は、getAvailableViewFinderSizes() で取得できる幅、高さの組になります。
これ以外の値を指定した場合は例外が発生します。
引数 sx、sy に指定した値は、Graphics.setOrigin(int, int)で設定されたオフセット値の影響を受けません。
引数 sx、sy には座標原点 (0, 0) を基準とした座標を指定します。
カメラファインダの表示領域が ADF の DrawArea キーに設定されている Star アプリの描画領域に収まらないようなサイズおよび左上座標を指定した場合、 例外が発生します。
START 状態時にこのメソッドが呼び出された場合、設定は行われずに無視されます。
width - 表示領域のサイズの幅を指定します。height - 表示領域のサイズの高さを指定します。sx - 表示領域の左上の X 座標を指定します。sy - 表示領域の左上の Y 座標を指定します。
IllegalArgumentException -
IllegalArgumentException -
public int[] getViewFinderArea()
カメラファインダの表示領域の設定状態を取得します。戻り値は幅、高さ、左上の X 座標、左上の Y 座標の順で値が格納された配列です。
最後に setViewFinderArea(int, int, int, int) で設定した値を返します。
一度も setViewFinderArea(int, int, int, int) を呼び出していない状態でこのメソッドを呼び出した場合は、
デフォルト値を返します。
カメラファインダの表示領域の幅、高さのデフォルト値は機種依存ですが、
左上の X 座標、左上の Y 座標のデフォルト値は座標(0, 0)です。
カメラファインダのサイズの設定状態の取得は START/STOP 状態に関わらず可能です。
public float[] getViewAngleSize(int width,
int height)
引数 width、height に指定する値は、getAvailableViewFinderSizes() で取得できる幅、高さの組になります。
これ以外の値を指定した場合は例外が発生します。
画角の取得は、START/STOP 状態に関わらず可能です。
width - カメラファインダのサイズの幅を指定します。height - カメラファインダのサイズの高さを指定します。
IllegalArgumentException -
public int getTransparentColor()
この端末に設定されているカメラファインダ機能使用時の透過色を取得します。
透過色の RGB 値は機種依存です。 このメソッドは、 RGB 値に対応するカラーを表す整数値を返します。
public void start()
カメラデバイスを起動して START 状態にします。
このメソッドを実行すると、ネイティブのカメラデバイスリソースを獲得し、
設定されているフォーカスの種類に応じたカメラファインダの画像をカメラファインダの表示領域に表示します。
サスペンド発生時、STOP状態になるため、レジューム時に撮影を継続するにはこのメソッドを再度呼び出す必要があります。
START状態で呼び出された場合、後発の呼び出しは無視されます。
com.docomostar.device.DeviceException - com.docomostar.device.DeviceException - com.docomostar.device.DeviceException - com.docomostar.device.DeviceException - com.docomostar.device.DeviceException - SecurityException -
com.docomostar.device.DeviceException - public void stop()
カメラデバイスを停止して STOP 状態にします。
このメソッドを実行すると、起動しているカメラデバイスの停止とリソースの開放を行います。 処理が完了するまでこのメソッドはブロックされます。
再度カメラデバイスを起動するには、start()を呼び出す必要があります。
STOP 状態で呼び出された場合、後発の呼び出しは無視されます。
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
NTT DOCOMO,INC.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。