繁体   English   中英

当我的相机改变方向时,我的应用无故崩溃

[英]When my camera changes orientation, my app crashes for no reason

好的,所以也许是有原因的。 我还是这个新手。 这是我的代码。 在完成方法的内部。 我在这条线上收到错误: camera.setParameters(p); 当我打开相机或手机时。 多数民众赞成在导致错误的行。 如果我注释掉。 相机可能会保持开启状态。 然后我在camera.stopPreview();上得到一个错误camera.stopPreview(); 线。

public void strobeTimer182() {
superStrobe = new CountDownTimer(857, 10) {

    public void onTick(long millisUntilFinished) {
        textView2.setText("seconds remaining: " + millisUntilFinished
                / 2);

        if (millisUntilFinished % 5 == 0
                || millisUntilFinished % 2 == 0
                || millisUntilFinished % 3 == 0
                || millisUntilFinished % 7 == 0) {

            p.setFlashMode(Parameters.FLASH_MODE_TORCH);
            camera.setParameters(p);
            camera.startPreview();

        } else {

            p.setFlashMode(Parameters.FLASH_MODE_OFF);
            camera.setParameters(p);
            camera.stopPreview();
            textView2.setText("off");
        }

    }

    public void onFinish() {
        textView2.setText("done!");
        // Set the flashmode to off
        p.setFlashMode(Parameters.FLASH_MODE_OFF);
        // Pass the parameter ti camera object
        camera.setParameters(p);
        //camera.stopPreview();
        textView2.setText("off");

    }
}.start();
superStrobe.onFinish();

}

将此添加到您的活动中。希望有帮助:)

android:configChanges="orientation|keyboardHidden|screenSize"
        public void strobeTimer182() {
    superStrobe = new CountDownTimer(857, 1) {

        public void onTick(long millisUntilFinished) {

            if (millisUntilFinished % 2 == 0) {

                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                camera.setParameters(p);
                camera.startPreview();
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(p);
                camera.stopPreview();

            } else {

                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                camera.setParameters(p);
                camera.startPreview();
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(p);
                camera.stopPreview();

            }
            if (millisUntilFinished == 0) {

                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                camera.setParameters(p);
                camera.startPreview();
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(p);
                camera.stopPreview();

            }

        }

        public void onFinish() {
            // causes errors
        }
    }.start();
    superStrobe.onFinish();
}

要么

        public void strobeTimer182() {
    superStrobe = new CountDownTimer(857, 1) {

        public void onTick(long millisUntilFinished) {



                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                camera.setParameters(p);
                camera.startPreview();
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(p);
                camera.stopPreview();


        }

        public void onFinish() {
            // causes errors
        }
    }.start();
    superStrobe.onFinish();
}

第一个选项是,如果您想循环浏览三个以上的状态,然后将其设置回第一状态。

第二个用于频闪的开-关效果,但我选择了第一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM