1

私はアンドロイドでバーコードスキャンアプリをやっています。その中で、私はカメラのフラッシュライトを動的にオンにする必要があり、次のコードを使用してこれを行っています

mCamera = Camera.open();     
Camera.Parameters params = mCamera.getParameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(params);
mCamera.startPreview();

しかし、次のような例外が表示されています。

ERROR/AndroidRuntime(17291): java.lang.RuntimeException: Fail to connect to camera service

ラインで

mCamera = Camera.open();  

例外は、バーコードをスキャンしている間、カメラはすでにオープンモードになっていて、ここでカメラをもう一度開こうとしているためだと思います。

カメラを再度開かずにフラッシュライトをオンにする方法はありますか?そしてどうやって?

4

3 に答える 3

0

既存のカメラオブジェクトを再利用して、その上にsetParametersを設定するだけです。すべてのデバイスがフラッシュモードトーチをサポートしているわけではないことに注意してください。また、fascinate / epic(実際にフラッシュモードをオンにしている)のように、カメラを切断して再接続しないと状態を変更できないものもあります。

于 2011-07-11T16:23:01.987 に答える
0

カメラ設定とカメラにアクセスしています。android.permission.CAMERAAndroidMainfest.xmlにuses-permissionsがあるかどうかを確認します。

于 2011-07-11T16:25:36.170 に答える
0

Have you used surface view to turn on the flash light, which device are you using as some of the devices do require surface view to make flash run in it.

ここにリンクがあります!

于 2014-03-11T07:54:47.080 に答える