1

私はstackoverflowで検索し、ハンドラーとpostDelayedメッセージを使用してライトをオンまたはオフにするアルゴリズムを使用しました。

アルゴは完全に実行されます....これが私がしたことです:

if(mActive)//control the runnable thread
    {
        if(mSwap)//toggler for strobe
        {
            //Turn Flash On
            cam = Camera.open();
            Parameters p = cam.getParameters();
            p.setFlashMode(Parameters.FLASH_MODE_TORCH);
            cam.setParameters(p);
            cam.startPreview();
            mSwap = false;
            mHandler.postDelayed(mRunnable, 1);
        }
        else
        {
            //Turn Flash Off

            cam.stopPreview();
            cam.release();
            cam = null;
            mSwap = true;
            mHandler.postDelayed(mRunnable, 1);


        }
    }

しかし、市場に出回っているアプリのストロボ周波数に合わせてスイッチングを増やすことはできません...

(メッセージをキューに入れる代わりに)使用できる他のロジックはありますか?? タイマーを使用すると、より良い結果が得られますか?

ありがとう

4

1 に答える 1

1

コードではCamera、トーチのオン/オフを切り替えるたびにオブジェクトの割り当てと割り当て解除を行っています。これには毎回かなりの時間がかかります。

修正するには、割り当て/割り当て解除をメソッドとメソッドに移動しonStartonStopライトのオンとオフを切り替える最小限の操作のみを行います。

于 2013-01-07T10:09:28.010 に答える