Android 设置参数。闪光模式火炬不';t在Droid X 2.3上工作
我正在编写一个将flash模式设置为torch的应用程序。我一直在我的Droid X上测试应用程序,但LED灯不亮。我在一个机器人上试过,效果很好。我想不出是什么问题。这是我打开火炬模式的部分代码Android 设置参数。闪光模式火炬不';t在Droid X 2.3上工作,android,camera,android-camera,flashlight,Android,Camera,Android Camera,Flashlight,我正在编写一个将flash模式设置为torch的应用程序。我一直在我的Droid X上测试应用程序,但LED灯不亮。我在一个机器人上试过,效果很好。我想不出是什么问题。这是我打开火炬模式的部分代码 Camera mCamera = Camera.open(); Camera.Parameters params = mCamera.getParameters(); if(params.getFlashMode() != null){ params.setFl
Camera mCamera = Camera.open();
Camera.Parameters params = mCamera.getParameters();
if(params.getFlashMode() != null){
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
}
mCamera.setParameters(params);
我添加了mCamera.startPreview();因为我读到这本书应该会有所不同,但事实并非如此。我还列出了可用的闪光模式列表,并将它们显示在屏幕上,以确保我的Droid X具有火炬模式,并且它也在列表中。我甚至根据我在网上找到的代码创建了一个新的应用程序,它通过一个按钮打开和关闭LED闪光灯。同样,它在Droid上工作得很好,难以置信,但在Droid X上却没有。是我在Droid X上运行它时遗漏了什么,还是可能是姜饼?Droid X正在运行姜饼,Droid Inclusible正在运行FroYo。可能是Droid X不支持火炬模式。试着这样做:
List<String> pList = camera.getParameters().getSupportedFlashModes();
if (pList.contains(Parameters.FLASH_MODE_TORCH))
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
List pList=camera.getParameters().getSupportedFlashModes();
if(pList.contains(Parameters.FLASH_MODE_TORCH))
参数设置闪光模式(参数闪光模式);
设置参数(参数);
设置闪光灯模式时,有很多怪癖
通常需要启动相机预览:
Camera mCamera = Camera.open();
mCamera.startPreview();
Camera.Parameters params = mCamera.getParameters();
if(params.getFlashMode() != null){
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
}
mCamera.setParameters(params);
这可能会在某些手机上解决,其他手机也需要将预览绘制到SurfaceView。这可以通过在活动中实现SurfaceHolder.Callback接口来实现。
请看一个例子。我发现在Droid X上唯一有效的是Siddhpura Amit在这个答案中部分页面下方给出的代码。他检查了制造商,看看里面是否有字符串“motorola”。如果有,他有特殊的代码可以打开或关闭闪光灯LED。我可以验证它是否工作,因为我有一个摩托罗拉Droid X。请参阅:
这将使一些不支持火炬的前置摄像头崩溃。它至少应该被try-catch包围。
SurfaceTexture mDummy = new SurfaceTexture(1); // any int argument will do
camera.setPreviewTexture(mDummy);
camera.startPreview();