Android相机闪光灯关闭后未打开
我的相机预览屏幕上有一个按钮可以切换相机的闪光灯。相机以自动闪光灯启动,按下按钮后闪光灯关闭,但当我尝试重新打开闪光灯时,闪光灯没有打开,我不知道为什么Android相机闪光灯关闭后未打开,android,camera,Android,Camera,我的相机预览屏幕上有一个按钮可以切换相机的闪光灯。相机以自动闪光灯启动,按下按钮后闪光灯关闭,但当我尝试重新打开闪光灯时,闪光灯没有打开,我不知道为什么 Log.d("flash",mCamera.getParameters().getFlashMode()); 按下时显示on off和auto。但它不会再打开。这是我的全部代码 public void flashPressed(View v) { ImageButton flashButton = (ImageButton)findV
Log.d("flash",mCamera.getParameters().getFlashMode());
按下时显示on off和auto。但它不会再打开。这是我的全部代码
public void flashPressed(View v)
{
ImageButton flashButton = (ImageButton)findViewById(R.id.flash);
Camera.Parameters myP = mCamera.getParameters();
if(flashOn == 0)
{
flashButton.setImageResource(R.drawable.device_access_flash_off);
myP.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
flashOn = 1;
}
else if(flashOn == 1)
{
myP.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
flashButton.setImageResource(R.drawable.device_access_flash_on);
flashOn=2;
}else{
myP.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
flashButton.setImageResource(R.drawable.device_access_flash_automatic);
flashOn =0;
}
mCamera.setParameters(myP);
Log.d("flash",mCamera.getParameters().getFlashMode());
}
为了避免这个问题,每次flash选项更改时,我都会创建一个新的摄像头,这就是我创建flash应用程序的方式
public class Flash extends Activity {
boolean cameraOpened;
static Camera camFlash = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onPause() {
super.onPause();
if (camFlash != null) {
camFlash.stopPreview();
camFlash.release();
camFlash = null;
}
}
public void turnOnFlash(View view) {
if (camFlash == null) {
camFlash = Camera.open();
}
if (camFlash != null) {
Parameters params = camFlash.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camFlash.setParameters(params);
camFlash.startPreview();
camFlash.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
}
public void turnOffFlash(View view) {
if (camFlash != null) {
camFlash.stopPreview();
camFlash.release();
camFlash = null;
}
}
}
方法turnOnFlash()和turnOffFlash是从xml android:onClick调用的。我正在两款不同的手机上测试这一点,一款手机正常工作,另一款则没有