|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Object | +--com.nttdocomo.device.Camera
携帯電話のネイティブのカメラ機能を呼び出して、 静止画/動画を撮影する機能にアクセスする手段を提供します。
静止画を撮影するためには、takePicture()
メソッドを呼び出します。
呼び出し前に指定した画像サイズ、画質、連写モード、フレーム画像を反映して、
静止画を撮影するモードでカメラ機能を立ち上げます。
動画を撮影するためには、takeMovie()
メソッドを呼び出します。
呼び出し前に指定した画像サイズ、画質、マイク音量を反映して、
動画を撮影するモードでカメラ機能を立ち上げます。
カメラ機能を立ち上げたら、 撮影時にユーザ操作により静止画と動画の撮影モードを切り替えることはできません。 また、カメラ機能を立ち上げる前に指定した画像サイズ、画質、連写モード、 フレーム画像、マイク音量の設定についても、 ユーザ操作により変更することはできません。 なお、これらの設定はiアプリからの撮影時のみに有効です。
ユーザの操作によりカメラ機能が終了すると、 takePicture/takeMovieメソッドから復帰します。 ユーザがカメラ機能で撮影を行い、撮影画像を保存した場合は、 カメラオブジェクト内にその撮影画像が保持されます。 ユーザが撮影を行わなかったり、あるいは撮影画像を保存しなかった場合は、 カメラオブジェクト内に撮影画像は保持されません。
カメラ機能は、コード認識機能と同じカメラデバイスを使用します。
そのため、同じカメラIDを持つCamera オブジェクトとCodeReader
オブジェクトは互いに状態に影響を与えます。
カメラ機能を用いて撮影を行った後にコード認識を行った場合は、
Cameraオブジェクトから撮影画像を取り出せる保証はありません。
同様に、コード認識を行った後にカメラ機能を用いて撮影を行った場合は、
CodeReader
オブジェクトからコード認識の結果を取り出せる保証はありません。
フィールドの概要 | |
static int |
ATTR_CONTINUOUS_SHOT_OFF
連写モード属性の一つで連写モードが無効であることを表します(=0)。 |
static int |
ATTR_CONTINUOUS_SHOT_ON
連写モード属性の一つで連写モードが有効であることを表します(=1)。 |
static int |
ATTR_FRAME_OFF
フレーム画像付きの静止画撮影の可否属性の一つで撮影不可であることを表します(=0)。 |
static int |
ATTR_FRAME_ON
フレーム画像付きの静止画撮影の可否属性の一つで撮影可能であることを表します(=1)。 |
static int |
ATTR_QUALITY_HIGH
画質属性の一つで品質優先を表します(=0)。 |
static int |
ATTR_QUALITY_LOW
画質属性の一つで録画時間または画像データのサイズ優先を表します(=2)。 |
static int |
ATTR_QUALITY_STANDARD
画質属性の一つで標準を表します(=1)。 |
static int |
ATTR_VOLUME_MAX
マイク入力の音量調整の属性の一つで最大音量を表します(=127)。 |
static int |
ATTR_VOLUME_MIN
マイク入力の音量調整の属性の一つで最小音量(ミュート状態)を表します(=0)。 |
static int |
DEV_CONTINUOUS_IMAGES
連写モードの連写可能な最大コマ数を表します(=3)。 |
static int |
DEV_CONTINUOUS_SHOT
連写モードを表します(=0)。 |
static int |
DEV_FRAME_SHOT
フレーム画像付きの静止画撮影の可否を表します(=4)。 |
static int |
DEV_QUALITY
画質を表します(=1)。 |
static int |
DEV_SOUND
マイク入力の音量調整を表します(=2)。 |
コンストラクタの概要 | |
protected |
Camera()
アプリケーションが直接このコンストラクタを呼び出して オブジェクトを生成することはできません。 |
メソッドの概要 | |
void |
disposeImages()
カメラオブジェクト内のすべての撮影画像を破棄します。 |
int |
getAttribute(int attr)
カメラの属性値を取得します。 |
int[][] |
getAvailableFrameSizes()
静止画撮影時に使用可能なフレーム画像のサイズを取得します。 |
int[][] |
getAvailableMovieSizes()
撮影可能な動画の画像サイズを取得します。 |
int[][] |
getAvailablePictureSizes()
撮影可能な静止画の画像サイズを取得します。 |
static Camera |
getCamera(int id)
カメラオブジェクトを取得します。 |
MediaImage |
getImage(int index)
カメラオブジェクト内の、 指定されたインデックスにある撮影画像を メディアイメージオブジェクトとして取得します。 |
long |
getImageLength(int index)
カメラオブジェクト内の、 指定されたインデックスにある撮影画像のデータサイズを取得します。 |
java.io.InputStream |
getInputStream(int index)
カメラオブジェクト内の、 指定されたインデックスにある撮影画像を読み出すための 入力ストリームを取得します。 |
long |
getMaxImageLength()
カメラ機能にて動画撮影する場合に、撮影可能な最大データサイズを取得します。 |
int |
getNumberOfImages()
カメラオブジェクト内に保持されている撮影画像数を取得します。 |
boolean |
isAvailable(int attr)
カメラの属性が設定可能かどうかを調べます。 |
void |
setAttribute(int attr,
int value)
カメラの属性を設定します。 |
void |
setFrameImage(MediaImage image)
カメラ撮影時にフレーム画像として使用する画像を設定します。 |
void |
setImageSize(int width,
int height)
撮影画像のサイズを設定します。 |
void |
takeMovie() [iアプリオプションAPI]
カメラ機能を動画撮影モードで呼び出します。 |
void |
takePicture()
カメラ機能を静止画撮影モードで呼び出します。 |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final int DEV_CONTINUOUS_SHOT
属性の設定と取得が可能です。
連写モードでの連写可能コマ数は機種依存ですが、
DEV_CONTINUOUS_IMAGES
属性により、
最大連写可能コマ数を取得できます。
連写不可能な画像サイズやフレーム画像の設定時に連写モードを有効にしようとした場合、
Cameraオブジェクトの属性としては連写モードは有効になります。
しかし、DEV_CONTINUOUS_IMAGES
属性の値は1であり、
takePicture()
メソッドを呼び出しても連写はできません。
public static final int ATTR_CONTINUOUS_SHOT_OFF
public static final int ATTR_CONTINUOUS_SHOT_ON
public static final int DEV_QUALITY
属性の設定と取得が可能です。
public static final int ATTR_QUALITY_HIGH
public static final int ATTR_QUALITY_STANDARD
public static final int ATTR_QUALITY_LOW
public static final int DEV_SOUND
属性の設定と取得が可能です。
属性値にはATTR_VOLUME_MIN(=0)〜ATTR_VOLUME_MAX(=127)を指定 します。デフォルト値は100です。
public static final int ATTR_VOLUME_MIN
public static final int ATTR_VOLUME_MAX
public static final int DEV_CONTINUOUS_IMAGES
属性の取得のみが可能です。
連写可能コマ数は、画像サイズなどの条件により変化することがあります。 したがって、getAttributeメソッドが返す値も、 Cameraオブジェクトの状態によって変化します。 ただし、getAttributeメソッドが返す値は可能な最大連写コマ数であって、 空きメモリ容量などにより実際の撮影コマ数が撮影可能コマ数に達しない場合があります。 また、takePictureメソッド呼び出し後のユーザ操作により、 それ以下の連写数に設定される場合もあります。 連写モードの設定に関係なく、連写モードが設定された場合の連写可能コマ数を返します。 連写不可能な場合には、値 1 を返します。
public static final int DEV_FRAME_SHOT
属性の取得のみが可能です。
フレーム画像付きの撮影の可否は、 画像サイズや連写モードなどの条件により変化することがあります。 したがって、getAttributeメソッドが返す値も、 Cameraオブジェクトの状態によって変化します。
public static final int ATTR_FRAME_OFF
public static final int ATTR_FRAME_ON
コンストラクタの詳細 |
protected Camera()
メソッドの詳細 |
public static Camera getCamera(int id)
端末に搭載されているカメラデバイスのうち、
Javaから制御可能なものには、
それぞれ固定的なカメラID が割り振られています。
ユーザはカメラIDを指定することにより、
カメラデバイスを指定することができます。
カメラIDは 0, 1, 2 … の順で割り振られています。
カメラIDに対してこのメソッドが初めて呼ばれた場合はオブジェクトを生成して返します。
生成直後のカメラオブジェクトは撮影画像を保持していない状態になっています。
以後、
同じカメラIDに対しては、常に同じオブジェクトへの参照を返します。
なお、Javaから制御可能なカメラデバイスの台数、 及びカメラIDとカメラデバイスの対応関係は機種依存です。
id
- カメラIDを指定します。
IllegalArgumentException
- 引数 id に負の値が指定された場合、
またはJavaから制御可能なカメラデバイスの台数以上の値が指定された場合に発生します。
DeviceException
- カメラデバイスを確保できない場合に発生します。
(NO_RESOURCES)
public void takePicture() throws InterruptedOperationException
ユーザの操作によりカメラ機能が終了すると、 Javaアプリケーションがレジュームした時点でこのメソッドから復帰します。 ユーザがカメラ機能で撮影を行い、 撮影画像を保存した場合は、 カメラオブジェクト内にその撮影画像が保持されます。 ユーザが撮影を行わなかったり、 あるいは撮影画像を保存しなかった場合は、 カメラオブジェクト内に撮影画像は保持されません。
カメラオブジェクト内に保持される撮影画像数は、 連写モードを無効にして撮影した場合は1つです。 連写モードを有効にして撮影した場合は複数保持されますが、 ユーザ操作やメモリ使用状況などにより 連写可能コマ数よりも少ないコマ数しか保持されない可能性があります。 なお、本メソッドを呼び出す前に保持していた撮影画像は、 本メソッドを呼び出した時点ですべて破棄されます。
カメラ機能が競合などで中断した場合には、 Javaアプリケーションがレジューム復帰した時点で例外が発生します。 このとき、連写モードが無効の場合は撮影画像は保持されませんが、 連写モードが有効の場合は中断前までの撮影画像が保持されます。 静止画撮影前にカメラ機能が中断した場合には、撮影画像は保持されません。
IllegalStateException
- 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
UIException
- setFrameImage
メソッドによりフレーム画像となるメディアイメージが設定されており、
そのメディアイメージが use 状態でない場合に発生します
(ILLEGAL_STATE)。
DeviceException
- リソース不足によりカメラ機能を起動できなかった場合に発生します(NO_RESOURCES)。
DeviceException
-
[DoJa-3.5]
マルチタスク機能によってバックグラウンドで動作しているネイティブ機能が未保存のデータを保持している場合に、
ユーザ確認においてユーザが当該データの破棄を拒否すると発生します(BUSY_RESOURCE)。
DeviceException
- リソース不足により静止画を保存できなかった場合、
または連写撮影画像を途中までしか保存できなかった場合に発生します
(NO_RESOURCES)。
DeviceException
- リソース不足以外の理由により静止画を保存できなかった場合、
または連写撮影画像を途中までしか保存できなかった場合に発生します
(UNDEFINED)。
InterruptedOperationException
- カメラ機能が中断した場合に発生します。
public void takeMovie() throws InterruptedOperationException [iアプリオプションAPI]
ユーザの操作によりカメラ機能が終了すると、 Javaアプリケーションがレジュームした時点でこのメソッドから復帰します。 ユーザがカメラ機能で撮影を行い、撮影画像を保存した場合は、 カメラオブジェクト内にその撮影画像が保持されます。 ユーザが撮影を行わなかったり、あるいは撮影画像を保存しなかった場合は、 カメラオブジェクト内に撮影画像は保持されません。
カメラオブジェクト内に保持される撮影画像数は1つのみです。 なお、本メソッドを呼び出す前に保持していた撮影画像は、 本メソッドを呼び出した時点ですべて破棄されます。
カメラ機能が競合などで中断した場合には、 Javaアプリケーションがレジューム復帰した時点で例外が発生します。 動画撮影中にカメラ機能が中断した場合には、 中断前までの撮影画像がカメラオブジェクト内に保持されます。 動画撮影前にカメラ機能が中断した場合には、撮影画像は保持されません。
UnsupportedOperationException
- 動画撮影をサポートしていない場合に発生します。
IllegalStateException
- 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
DeviceException
- リソース不足によりカメラ機能を起動できなかった場合に発生します
(NO_RESOURCES)。
DeviceException
-
[DoJa-3.5]
マルチタスク機能によってバックグラウンドで動作しているネイティブ機能が未保存のデータを保持している場合に、
ユーザ確認においてユーザが当該データの破棄を拒否すると発生します(BUSY_RESOURCE)。
DeviceException
- リソース不足により動画を途中までしか保存できなかった場合に発生します
(NO_RESOURCES)。
DeviceException
- リソース不足以外の理由により動画を途中までしか保存できなかった場合に発生します
(UNDEFINED)。
InterruptedOperationException
- カメラ機能が中断した場合に発生します。
public int getNumberOfImages()
public long getImageLength(int index)
index
- 撮影画像のインデックスを指定します。
ArrayIndexOutOfBoundsException
- index に負の値が指定された場合、
またはカメラオブジェクトが保持している撮影画像数以上の値が指定された場合に発生します。
public long getMaxImageLength()
public MediaImage getImage(int index)
取得されたメディアイメージオブジェクトは、 useもdisposeもされていない状態です。
index
- 撮影画像のインデックスを指定します。
ArrayIndexOutOfBoundsException
- index に負の値が指定された場合、
またはカメラオブジェクトが保持している撮影画像数以上の値が指定された場合に発生します。
public java.io.InputStream getInputStream(int index)
静止画撮影の場合、入力ストリームから得られる撮影画像のフォーマットはJPEG(JFIFベースライン)です。
index
- 撮影画像のインデックスを指定します。
ArrayIndexOutOfBoundsException
- index に負の値が指定された場合、
またはカメラオブジェクトが保持している撮影画像数以上の値が指定された場合に発生します。
public void disposeImages()
カメラオブジェクトは撮影画像を保持していない状態になります。
カメラオブジェクトが撮影画像を保持していない状態で、
このメソッドを呼び出した場合は何もしません。
フレーム画像が設定されていた場合は、setFrameImage
メソッドにnullを設定したのと同じになります。
カメラオブジェクト内の撮影画像が破棄された場合でも、 カメラオブジェクトから取得したメディアイメージオブジェクト/入力ストリームは 有効のままであり、その状態に影響を与えません。
public void setImageSize(int width, int height)
指定した画像サイズのまま撮影されるかどうかは機種依存です。 指定した画像サイズのまま撮影されない場合は、 撮影可能な画像サイズのうち 指定した画像サイズが収まる最も小さな画像サイズで撮影されます。 画像サイズの種類と段階は機種依存です。 ただし、設定した画像サイズが、撮影可能な最大サイズを超えた場合は、 撮影可能な最大サイズで撮影されます。
画像サイズを設定せずに撮影を実行した場合、 機種依存のデフォルトのサイズにて撮影されます。
QCIFサイズは 176×144 、SubQCIFサイズは 128×96 をそれぞれ指定してください。 iショット(L)サイズは 288×352、 iショット(S)サイズは 120×120または144×144を指定してください。
画像サイズは撮影前に設定してください。 撮影後に設定した撮影サイズは、次回以降の撮影画像に反映されます。
画像サイズを指定しない場合を除き、
静止画撮影時に使用するフレーム画像は、
このメソッドが呼ばれた後に設定しなければなりません。
このメソッドが呼ばれると、
setFrameImage
メソッドによる設定は破棄され、
フレーム画像なしの撮影となります。
これは、すでに設定されているフレーム画像のサイズと
設定された画像サイズが同じ場合にも適用されます。
フレーム画像付き撮影を行う場合、
このメソッドにより設定されたサイズ
(引数で設定したサイズではなく実際に撮影されるサイズ)
と同じサイズのフレーム画像を指定して、
setFrameImage
を呼び出してください。
width
- 画像サイズの幅を指定します。height
- 画像サイズの高さを指定します。
IllegalArgumentException
- 引数 width, height のどちらか
または両方に 0 以下の値が指定された場合に発生します。
public boolean isAvailable(int attr)
setAttribute(int, int)
メソッドで制御することが可能です。
端末がその属性の制御をサポートしていない場合や、
端末の設定によってその属性の制御が制限されている場合は false を返します。
attr
- カメラ属性の種類を指定します。
public void setAttribute(int attr, int value)
attr
- 設定する属性を指定します。value
- 設定する属性の値を指定します。
IllegalArgumentException
- 引数 attr で指定された有効な属性に対して、
引数 value に不正な値が指定された場合に発生します。
public int getAttribute(int attr)
attr
- カメラ属性の種類を指定します。
public void setFrameImage(MediaImage image)
フレーム画像として使用できる画像には、
通常、透明色を持つGIFイメージを指定します。
設定するフレーム画像の画像サイズは、
撮影画像サイズと等しいものに限ります。
結果として取得される画像は、フレーム画像なしに撮影した画像の上に、
フレーム画像を描画した画像となります。
nullを指定した場合、フレーム画像なしの撮影となります。
初期状態およびsetImageSize
が呼ばれた後では、
フレーム画像は設定されていません。
指定されるメディアイメージは use 状態でなければなりません。
image
- フレーム画像として使用する画像を指定します。
nullを指定した場合、フレーム画像なしの撮影となります。
UIException
- 現在の撮影画像サイズではフレーム画像付きの撮影が不可能である場合に、
引数に null でない値を指定した場合に発生します
(ILLEGAL_STATE)。
UIException
- 指定されたメディアイメージが use 状態でない場合に発生します
(ILLEGAL_STATE)。
UIException
- フレーム画像としてサポートされない画像タイプを指定した場合に発生します
(UNSUPPORTED_FORMAT)。
UIException
- setImageSize
メソッドにより設定された撮影画像サイズと
異なるサイズのフレーム画像を指定した場合に発生します
(UNSUPPORTED_FORMAT)。
UIException
- フレーム画像として指定された画像が透明色宣言を含まない場合に発生します
(UNSUPPORTED_FORMAT)。
public int[][] getAvailableFrameSizes()
getAvailablePictureSizes
メソッドで得られるすべての撮影可能な画像サイズに対して、
フレーム画像付きの撮影が可能であるとは限りません。
したがって、このメソッドとgetAvailablePictureSizesメソッドの戻り値は
異なることがあります。
public int[][] getAvailablePictureSizes()
public int[][] getAvailableMovieSizes()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
NTT DoCoMo,Inc.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。