android和照相机闪光灯
我想写的应用程序,将用于相机闪光灯。我要灯光闪烁。目前,我有以下代码:android和照相机闪光灯,android,Android,我想写的应用程序,将用于相机闪光灯。我要灯光闪烁。目前,我有以下代码: void ledon() { cam = Camera.open(); Parameters params = cam.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_ON); cam.setParameters(params); cam.startPreview(); cam.autoFocus(new
void ledon() {
cam = Camera.open();
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
cam.setParameters(params);
cam.startPreview();
cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
本部分:
cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
我不知道为什么它是必要的,但是没有它它是不行的
此代码将打开led并自动关闭约2秒钟。我想知道led将亮起,例如5秒,然后3秒led熄灭,然后再次亮起4秒。如何手动设置led亮起和熄灭的时间段。这可能吗?谢谢你的帮助
另外,我有三星galaxy ace。看起来您想要使用的是
参数。FLASH\u MODE\u TORCH
。当您想打开闪光灯LED时,将其设置为TORCH,然后当您想关闭火炬灯时,将其设置为AUTO
此外,请查看此问题,因为它将告诉您人们在使用某些设备时遇到的一些问题
然后,对于计时器,您可以使用timer的实例和TimerTask的子类来完成这项任务。下面是我为确保Internet查询不会花费太长时间而编写的代码中的一个示例:
private QueryLyricsTask clt;
private Timer t1;
...
/* Make sure the query doesn't take too long */
try {
t1 = new Timer("monitorTimeout");
t1.schedule(new qlt(), lyricsTimeout * 1000);
} catch (Exception e) {
e.printStackTrace();
}
...
class qlt extends java.util.TimerTask {
@Override
public void run() {
if (clt.getStatus() != Status.FINISHED)
clt.cancel(true);
}
}
为了解释这些变量,“monitorTimeout”是引用计时器的标记名。“qlt”是计时器t1运行后运行的类。“lyricsTimeout”是用户在设置中指定的数值(超时以秒为单位)。“clt”是从AsyncTask派生的类的实例,因此它将运行查询而不会冻结我的UI。显然,在您的情况下,您可能不需要AsyncTask,但可能需要run()中的一个简单的“if”语句来根据闪光灯的当前状态切换闪光灯
查看,这样您就可以学习如何使计时器在一天中的特定时间触发一次或多次