Android手电筒应用中的闪烁模式

时间:2015-05-31 10:46:06

标签: android timer countdowntimer flashlight

正如你所看到的,我正在制作具有2种闪光模式的Android手电筒(首先是不停闪光灯,第二种闪光灯会暂停0.5秒),但是我的代码无效。这是我的代码:

private void turnOnFlash() {
    if (!isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();

        switch(mode) {
            case 1:
                params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                break;
            case 2:
                timer = new CountDownTimer(1000, 500) {
                    @Override
                    public void onTick(long millisUntilFinished) {
                        params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    }

                    @Override
                    public void onFinish() {
                        params.setFlashMode(Parameters.FLASH_MODE_OFF);
                    }
                };
                break;
        }

        camera.setParameters(params);
        camera.startPreview();
        isFlashOn = true;

        playSound();
        toggleButtonImage();
    }
}

以及此处检测模式的方法

tvMode.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            switch(mode) {
                case 1:
                    mode = 2;
                    tvMode.setText("2");
                    if(isFlashOn) {
                        turnOffFlash();
                        turnOnFlash();
                    }
                    break;
                case 2:
                    mode = 1;
                    tvMode.setText("1");
                    if(isFlashOn) {
                        turnOffFlash();
                        turnOnFlash();
                    }
                    break;
            }
        }
    });
}

1 个答案:

答案 0 :(得分:0)

问题解决了。我忘了把.start();放在CountDownTimer的末尾。