0

buttonオン/オフを切り替える単純なアプリケーションがありますcamera flash

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button)findViewById(R.id.btnFlash);
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if(!isLight)
                {
                    switchON();
                }
                else
                {
                    switchOFF();
                }
            }
        });
    }

フラッシュがオフの場合はオンになり、それ以外の場合はオフになります。はい、うまくいきます。問題は次のとおりです。-最初に、を押しbuttonてオンにし、その後、デバイスを回転させてから、もう一度押してオフにします->アプリケーションがクラッシュしました。

致命的な例外: メイン - 実行時例外: カメラ サービスへの接続に失敗しました

これらは、オン/オフする2つの機能です

public void switchON()
    {
        camera = Camera.open();
        Parameters p = camera.getParameters();
        p.setFlashMode(Parameters.FLASH_MODE_TORCH);
        camera.setParameters(p);
        camera.startPreview();
        isLight = true;
    }

    public void switchOFF()
    {
        Parameters p = camera.getParameters();
        p.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(p);
        camera.stopPreview();
        camera.release();
        isLight = false;
    }
4

2 に答える 2

0

試す:

 public void switchOFF()
    {

    if(camera == null)
    {
        camera = Camera.open();
    }
        Parameters p = camera.getParameters();
        p.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(p);
        camera.stopPreview();
        camera.release();
        isLight = false;
    }
于 2014-02-26T09:03:03.523 に答える