[英]Camera app with Auto Focus and Flash Light
我在android中开发相机应用程序(不使用intent),在其中我实现了自动对焦和闪光灯功能。 如果我实现任何一项功能,它都可以正常工作。 但是,在同时添加自动对焦和闪光灯功能后,它可以在LG nexus和其他具有闪光灯的手机中强制关闭。 我将以下代码用于自动对焦和闪光灯。
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
{
event.startTracking();
camera.autoFocus(autoFocusCallback);
Parameters p = camera.getParameters();
p.setFocusMode(Parameters.FOCUS_MODE_AUTO);
if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))
{
p.setFlashMode(Parameters.FLASH_MODE_ON);
camera.setParameters(p);
camera.startPreview();
camera.takePicture(shutterCallback, rawCallback, jpgCallback);
}
else
{
camera.startPreview();
camera.takePicture(shutterCallback, rawCallback, jpgCallback);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
private AutoFocusCallback autoFocusCallback = new AutoFocusCallback()
{
@Override
public void onAutoFocus(boolean autoFocusSuccess, Camera camera)
{
camera.takePicture(shutterCallback, rawCallback, jpgCallback);
if (autoFocusHandler != null)
{
Message message = autoFocusHandler.obtainMessage(autoFocusMessage, success);
autoFocusHandler.sendMessageDelayed(message, AUTOFOCUS_INTERVAL_MS);
autoFocusHandler = null;
}
else
{
}
}
};
这是我得到的错误日志。
可能是什么问题。 请帮忙! 谢谢!
刚刚快速浏览了Camera文档,就好像您错过了Surface Holder。
重要说明:将完全初始化的SurfaceHolder传递给setPreviewDisplay(SurfaceHolder)。 没有表面,相机将无法开始预览。
阅读文档: http : //developer.android.com/reference/android/hardware/Camera.html
这是显示如何使用它的答案: https : //stackoverflow.com/a/3964460/2045570
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.