我正在尝试使用手机的相机闪光灯来使用手电筒。我有一个按钮在ON和OFF之间切换,但由于某种原因,下面的代码不起作用。我知道已有几个问题,但他们都没有给出正确的答案。
有人可以帮帮我吗?
代码开/关闪光:
camera = Camera.open();
final Parameters p = camera.getParameters();
flashon.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
if (isFlashOn)
{
Log.e("Flash", "Flash is turned off!");
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
isFlashOn = false;
flashon.setText("Flash ON");
}
else
{
Log.i("Flash", "Flash is turned on!");
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
isFlashOn = true;
flashon.setText("Flash OFF");
}
}
});
以下是清单详情:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
等待您的回复! 谢谢!
答案 0 :(得分:0)
当你这样做时会发生什么? 也许你有问题,因为你把p设为最终。
camera = Camera.open();
flashon.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
if (isFlashOn)
{
Log.e("Flash", "Flash is turned off!");
camera.setParameters(camera.getParameters().setFlashMode(Parameters.FLASH_MODE_OFF));
isFlashOn = false;
flashon.setText("Flash ON");
}
else
{
Log.i("Flash", "Flash is turned on!");
camera.setParameters(camera.getParameters().setFlashMode(Parameters.FLASH_MODE_TORCH));
isFlashOn = true;
flashon.setText("Flash OFF");
}
}
});
答案 1 :(得分:0)
试试这段代码。这对我有用。
private Camera camera;
private Parameters p;
//initialize camera instance
private void initCamera() {
try{
camera = Camera.open();
p=camera.getParameters();
}catch (Exception e){
camera = null;
}
}
//start flashing
private void startFlashing() {
initCamera();
if(camera!=null && this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)){
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
}