在Android中使用相机手电筒
我正试图在小部件中使用相机LED手电筒。我已经找到了关于这个主题的几个主题(即稍后提到的那个),现在我正在尝试使用以下方法控制灯光:
Camera cam = Camera.open();
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.release();
在AndroidManifest.xml中尝试了不同的权限,目前我有:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
我正在Galaxy Tab上测试这个,因为我手头没有任何其他Android设备:灯没亮。所以我现在有几个问题:
有没有办法测试仿真器中的led灯行为?
我在这里做错了吗?
根据这个处理相同问题的问题,它在Galaxy Tab上的工作方式不同。怎么样?
最后,如果它的工作方式不同,我开始怀疑它是否仅仅是Galaxy Tab或其他设备是否也使用不同的方法。那时很难测试,对我来说似乎很奇怪。
感谢您的任何见解!
顺便说一句,我很快就通过快速设置进行了测试,这里提到了几次。手电筒也不能用于快速设置。
请注意,Galaxy Tab stil使用android 2.2。我看到2.2和2.3之间有一些变化。
评论:
我知道它必须以某种方式工作,因为我发现市场上的其他应用程序与Galaxy Tab完美配合。
评论2:
如果我设置cam.setParameters(p);并使用getFlashMode()直接向相机询问当前状态,它正确返回FLASH_MODE_TORCH。但是,如果我释放相机并重新打开它,它将返回FLASH_MODE_OFF。这几乎就像Camera对象知道了请求,但并没有真正将它传递给硬件!?
-
康斯坦丁评论后,我删除了cam.release();部分。他是对的,如果你松开相机,设置就不会持续存在。如果再次使用cam.open(),您将获得一个关闭灯的新实例。尽管如此,光还没有在星系标签上工作。
所以,如果你试图通过一个小部件来控制它,我想很难保持亮点。一旦后台服务完成,相机对象就会自动释放,因此灯会再次关闭。我的问题仍然存在,特别是为什么相机不能在一开始就打开。
没有找到相关结果
已邀请:
7 个回复
邦绊门蔽惩
如果这不起作用,那么最初可能需要设置FLASH_MODE_OFF并在startPreview之后更改它。
驮帽俺篮号
剿畦缄饥小
以下代码显示了如何关闭和打开灯:
下面是DroidLED类:
} 必须在AndroidManifest.xml中设置以下权限:
裸雷胜檀哭
恋裂
课刊灭似
疏腔傻小雹
在Manifest中设置权限: