0
我正在實施可以正常工作的閃光燈功能(LED相機閃光燈開啓/關閉),我發生的問題是打開/關閉在不同設備中具有不同的頻率。在HTC SensationXE中,它的閃爍速度很快,而在NEXUS中,其閃爍的慢速不知道問題所在。任何人都可以幫助請: 這裏是代碼:在相同頻率閃爍的Android上實施閃光燈(閃光燈閃爍)效果
/*
* This method turn on the LED camera flash light
*/
public void flashLightOn() {
Log.d("Time", "On");
if (!isFlashOn) {
if (cam != null || params != null) {
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(params);
cam.startPreview();
isFlashOn = true;
} else {
cam = Camera.open();
params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(params);
cam.startPreview();
isFlashOn = true;
}
}
else{
return;
}
}
/*
* This method turn off the LED camera flash light
*/
public void flashLightOff() {
Log.d("Time", "Off");
if (isFlashOn) {
if (cam != null || params != null) {
//params.setFlashMode(Parameters.FLASH_MODE_OFF);
//cam.setParameters(params);
cam.stopPreview();
isFlashOn = false;
}
else{
//params = cam.getParameters();
//params.setFlashMode(Parameters.FLASH_MODE_OFF);
//cam.setParameters(params);
cam.stopPreview();
isFlashOn = false;
}
}
else{
return;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
mHolder = holder;
try {
cam.setPreviewDisplay(mHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
cam.stopPreview();
mHolder = null;
}
private final Runnable mRunnable = new Runnable() {
public void run() {
if (mActive) {
if (mSwap) {
flashLightOn();
mSwap = false;
mHander.postDelayed(mRunnable, strobeOnDelay);
} else {
flashLightOff();
mSwap = true;
mHander.postDelayed(mRunnable, strobeOffDelay);
}
}
}
};
我的班級FPGA實現SurfaceHolder.Callback
非常感謝你的幫助,它是如此的你。我會嘗試 –