4

フラッシュモードをトーチに設定するアプリを書いています。Droid X でアプリケーションをテストしていますが、LED ライトが点灯しません。Droid Incredible で試したところ、問題なく動作しました。何が問題なのかわかりません。トーチモードをオンにするコードの一部を次に示します。

    Camera mCamera = Camera.open();
    Camera.Parameters params = mCamera.getParameters();
    if(params.getFlashMode() != null){
        params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    }
    mCamera.setParameters(params);

mCamera.startPreview(); を追加しました。私はそれが違いを生むはずだと読んだので、違いはありません。また、利用可能なフラッシュ モードのリストを作成し、それらを画面に表示して、私の Droid X にトーチ モードがあり、それがリストにあることを確認しました。オンラインで見つけたコードから、ボタンで LED フラッシュをオン/オフする新しいアプリケーションも作成しました。繰り返しますが、Droid Incredible では正常に機能しましたが、Droid X では機能しませんでした。これを Droid X で実行するために不足しているものはありますか、それとも Gingerbread の何かでしょうか? Droid X は Gingerbread を実行しており、Droid Incredible は FroYo を実行しています。

4

4 に答える 4

6

FLASH_MODE_TORCH を設定するとき、かなりの癖があります。

多くの場合、カメラ プレビューを開始する必要があります。

Camera mCamera = Camera.open();
mCamera.startPreview();
Camera.Parameters params = mCamera.getParameters();
if(params.getFlashMode() != null){
    params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
}
mCamera.setParameters(params);

一部の電話ではそれで解決する場合がありますが、他の電話ではプレビューを SurfaceView に描画する必要があります。これは、アクティビティに SurfaceHolder.Callback インターフェイスを実装することで実行できます。ここで例を参照してください。

于 2012-01-17T20:00:10.640 に答える
4

DroidXがトーチモードをサポートしていない可能性があります。次のようなものを試してください。

        List<String> pList = camera.getParameters().getSupportedFlashModes();

        if (pList.contains(Parameters.FLASH_MODE_TORCH))
            parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);


         camera.setParameters(parameters);
于 2011-08-22T10:14:18.357 に答える
0

Droid Xで動作することがわかった唯一のものは、この回答のページの途中でSiddhpura Amitによって提示されたコードですUse camera flashlight in Android . 彼はメーカーをチェックし、文字列「motorola」が含まれているかどうかを確認します。もしそうなら、彼はカメラのフラッシュ LED をオンまたはオフに切り替えることができる特別なコードを持っています。Motorola Droid X を持っているので、動作することを確認できます。

于 2013-05-31T13:51:35.753 に答える