正如你所看到的,我正在制作具有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;
}
}
});
}
答案 0 :(得分:0)
问题解决了。我忘了把.start();
放在CountDownTimer的末尾。