フラッシュカメラを点滅させるアプリを作成していますが、メソッドをオフにするのに問題があります。これらは私の変数です:
Camera camera = null;
Parameters parameters;
int delay = 600;
int period = 600;
int delay1 = 300;
int period1 = 600;
Timer timer, timer2;
フラッシュカメラを点滅させるために使用しているこの方法:
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
cameraOn();
}
},delay1,period1);
timer2 = new Timer();
timer2.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
cameraOff();
}
},delay,period);
そして今、問題が発生します。これらすべてをオフにするボタンがありますが、機能する場合と機能しない場合があります。完全にオフになることもあれば、希望どおりに前のアクティビティに戻ることもありますが、フラッシュカメラはオンのままです。なにが問題ですか?カメラのフラッシュのオン/オフを切り替える方法は次のとおりです。
private void cameraOff() {
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
}
private void cameraOn() {
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
}
そして、ここにボタンがあります:
@Override
public void onClick(View arg0) {
timer.cancel();
timer2.cancel();
if(camera != null){
cameraOff();
}else{
finish();
}
}