Java Flash切换按钮崩溃android
该应用程序在四种不同的设备上运行良好。但客户端在Xperia z2上的flash Button开/关时面临崩溃 main活动Java Flash切换按钮崩溃android,java,android,camera,Java,Android,Camera,该应用程序在四种不同的设备上运行良好。但客户端在Xperia z2上的flash Button开/关时面临崩溃 main活动 btnFlash.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast.makeText(context, "Flash i
btnFlash.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
Toast.makeText(context, "Flash is toggled", Toast.LENGTH_LONG).show();
if(CameraPreview.isFlashOn)
{
CameraPreview.FlashOff(camera);
CameraPreview.isFlashOn = false;
}
else
{
CameraPreview.isFlashOn = true;
CameraPreview.FlashOn(camera);
}
}
});
CameraPreview
public static boolean isFlashOn =false; //
public static void FlashOn(Camera mCamera)
{
// Get Camera Params for customisation
Camera.Parameters parameters = mCamera.getParameters();
// Check Whether device supports AutoFlash, If you YES then set
// AutoFlash
List<String> flashModes = parameters.getSupportedFlashModes();
if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
{
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
}
else if (flashModes.contains(Parameters.FLASH_MODE_ON))
{
parameters.setFlashMode(Parameters.FLASH_MODE_ON);
}
mCamera.setParameters(parameters);
mCamera.startPreview();
}
public static void FlashOff(Camera mCamera)
{
// Get Camera Params for customisation
Camera.Parameters parameters = mCamera.getParameters();
// Check Whether device supports AutoFlash, If you YES then set
// AutoFlash
List<String> flashModes = parameters.getSupportedFlashModes();
if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
{
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
}
mCamera.setParameters(parameters);
mCamera.startPreview();
}
应木库的要求。我自己回答的。用于切换闪光灯
flashBtn.setOnClickListener(new OnClickListener()
{
@Override
public onClick(View view)
{
if(cameraView!=null)//cameraView is the CameraPreview.class
{
if(cameraView.isFlashOn() && isFlashRunning)
{
cameraView.FlashOff(camera);
isFlashRunning = false;
}
else
{
cameraView.FlashOn(camera);
isFlashRunning = true;
}
}
});
以及闪络和闪络方法
public void FlashOn(Camera mCamera) throws RemoteException
{
// Get Camera Params for customisation
Camera.Parameters parameters = mCamera.getParameters();
// Check Whether device supports AutoFlash, If you YES then set
// AutoFlash
List<String> flashModes = parameters.getSupportedFlashModes();
if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
{
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
isFlashOn = true;
}
else if (flashModes.contains(Parameters.FLASH_MODE_ON))
{
parameters.setFlashMode(Parameters.FLASH_MODE_ON);
isFlashOn = true;
}
mCamera.setParameters(parameters);
mCamera.startPreview();
//mCamera.autoFocus(null); // may be this is problem
}
public void FlashOff(Camera mCamera) throws RemoteException
{
// Get Camera Params for customisation
Camera.Parameters parameters = mCamera.getParameters();
// Check Whether device supports AutoFlash, If you YES then set
// AutoFlash
List<String> flashModes = parameters.getSupportedFlashModes();
if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
{
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
isFlashOn = false;
}
mCamera.setParameters(parameters);
mCamera.startPreview();
}
public void FlashOn(摄像头mCamera)引发RemoteException
{
//获取相机参数以进行定制
Camera.Parameters=mCamera.getParameters();
//检查设备是否支持AutoFlash,如果支持,则设置
//自动闪光
List flashModes=parameters.getSupportedFlashModes();
if(flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
{
参数设置闪光模式(参数闪光模式);
isFlashOn=true;
}
else if(flashModes.contains(Parameters.FLASH\u MODE\u ON))
{
parameters.setFlashMode(parameters.FLASH_MODE_ON);
isFlashOn=true;
}
mCamera.setParameters(参数);
mCamera.startPreview();
//mCamera.autoFocus(null);//可能是这个问题
}
public void FlashOff(摄影机mCamera)引发RemoteException
{
//获取相机参数以进行定制
Camera.Parameters=mCamera.getParameters();
//检查设备是否支持AutoFlash,如果支持,则设置
//自动闪光
List flashModes=parameters.getSupportedFlashModes();
if(flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
{
parameters.setFlashMode(parameters.FLASH_MODE_OFF);
isFlashOn=false;
}
mCamera.setParameters(参数);
mCamera.startPreview();
}
你找到解决方案了吗?我面临同样的问题是的,我找到了解决方案。我已经为你解答了。无垢
public void FlashOn(Camera mCamera) throws RemoteException
{
// Get Camera Params for customisation
Camera.Parameters parameters = mCamera.getParameters();
// Check Whether device supports AutoFlash, If you YES then set
// AutoFlash
List<String> flashModes = parameters.getSupportedFlashModes();
if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
{
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
isFlashOn = true;
}
else if (flashModes.contains(Parameters.FLASH_MODE_ON))
{
parameters.setFlashMode(Parameters.FLASH_MODE_ON);
isFlashOn = true;
}
mCamera.setParameters(parameters);
mCamera.startPreview();
//mCamera.autoFocus(null); // may be this is problem
}
public void FlashOff(Camera mCamera) throws RemoteException
{
// Get Camera Params for customisation
Camera.Parameters parameters = mCamera.getParameters();
// Check Whether device supports AutoFlash, If you YES then set
// AutoFlash
List<String> flashModes = parameters.getSupportedFlashModes();
if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
{
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
isFlashOn = false;
}
mCamera.setParameters(parameters);
mCamera.startPreview();
}