ぽんこつプログラマーの日々のまとめ
isw11m

AndroidのLEDライトを制御する。
このLEDは、通知などを知らせるLEDではなく、カメラに付いているLEDライトを指す。

マニフェストに定義
AndroidManifest.xml
<uses-sdk android:minSdkVersion="x" />の下に
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.flash" />
の三行を追加。

カメラをインポート
LEDライトを直接制御するクラスがない?為、カメラからLEDを制御する。
ソースコード(hoge.java)にCameraをImportする。
import android.hardware.Camera;

LEDライトを制御するサンプルソース
//カメラを取得
Camera c = Camera.open();
//カメラのパラメータを取得
Camera.Parameters cp = c.getParameters();
//フラッシュモードを"常に点灯"に設定(Android OS Verに依存?)
cp.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
//パラメータを設定
c.setParameters(cp);
//プレビューをしないと光らない
c.startPreview();

カメラデバイスを開放する

プログラムが終了・停止する際にカメラデバイスを開放する。
@Override
public void onStop(){
super.onStop();
//制御しているカメラデバイスのインスタンス
c.release();
}

Camera.open(int CameraIndex)
カメラデバイスを取得する関数。
端末に複数デバイスがある場合(前面カメラ・背面カメラ等)、引数に"CameraIndex"を与えると任意のデバイスを取得できる。
デバイスの総数を取得する関数は”Camera.getNumberOfCameras();”

Camera.Parameters.setFlashMode(String value)

LEDライトの点灯モードを切り替える関数。AndroidのOSバージョン、端末に依存する。
OSでサポートされているvalueを取得する関数は"getFlashMode()"
引数定型文
・FLASH_MODE_AUTO = 自動
・FLASH_MODE_ON = 有効
・FLASH_MODE_OFF = 無効
・FLASH_MODE_TORCH = 常に点灯
・FLASH_MODE_RED_EYE = 赤目補正
注意しないといけないのが、”有効”に設定してもシャッターを切らない限り光らないこと。

Camera.startPreview()
カメラデバイスを起動する関数。これを叩かないとデバイスが動作しないのでLEDライトも光らない。
カメラデバイスを停止する関数は"stopPreview()"


まとめ
サンプルでは一番最後にプレビューを行っているが、これは先に行っておいてもよい。
特にフラッシュを点滅させたい場合など、いちいち起動・停止を行うとタイムラグが生じるので、
”FLASH_MODE_OFF”と”FLASH_MODE_TORCH”を切替える方法で行う。

Add Comments

名前
 
  絵文字
 
 

Trackback URL

記事検索
gallery
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑲ Dark 1080*960
  • [Android] 壁紙⑱ 雨 1080*960
  • [Android] 壁紙⑱ 雨 1080*960
  • [Android] 壁紙⑱ 雨 1080*960
  • [Android] 壁紙⑱ 雨 1080*960
  • [Android] 壁紙⑱ 雨 1080*960