0

時限アラート (正常に動作) を使用して、カメラのフラッシュ LED のオフとオンの位置をすばやく切り替えるコードを実行しようとしています。

ハンドラーを使用して 2 つのモードを切り替えようとしていますが、実行できないようです。誰かがカメラの LED をストロボする別の方法を提案できるかどうか、または私のコードに問題があるかどうかを見つけようとするかどうか疑問に思っていました。

助けていただければ幸いです。私はAndroidプログラミングが初めてです。

コードは次のとおりです。

import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.os.Handler;


public class MyAlert extends Activity {
private Handler mHander = new Handler();

private boolean mActive = false;
    private boolean mSwap = true;   
    private Camera camera;
    final Parameters p = camera.getParameters();


        private final Runnable mRunnable = new Runnable() {

        public void run() {         
            if (mActive) {
                if (mSwap) {                    
                    p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    camera = Camera.open();
                    camera.setParameters(p);
                    camera.startPreview();
                    mSwap = false;
                    mHander.postDelayed(mRunnable, 20);
                } else {
                    p.setFlashMode(Parameters.FLASH_MODE_OFF);
                    camera = Camera.open();
                    camera.setParameters(p);
                    camera.stopPreview();
                    mSwap = true;
                    mHander.postDelayed(mRunnable, 100);
                }
            }           
        }
    };
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        startStrobe();
    }

    private void startStrobe() {        
        mActive = true;
        mHander.post(mRunnable);


    }
};
4

1 に答える 1

0

AFAIR、プレビューを停止してカメラを離すだけで、フラッシュをオフに切り替えることができます。しかし、実際の問題は、デバイスの動作が異なり、常に宣伝されているとは限らないことです.

于 2012-06-27T08:53:31.453 に答える