Min*_*Man 9 camera android lg flashlight
更新
看看我的答案
原版的
我想在我的程序中打开LG Revolution上的相机手电筒.我使用的火炬模式方法适用于大多数手机但不适用于LG手机.有谁知道如何让它在LG或特别是革命上工作?
这是我的清单:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
Run Code Online (Sandbox Code Playgroud)
这是我目前的代码:
public Camera camera = Camera.open();
public Camera.Parameters Flash = camera.getParameters();
Run Code Online (Sandbox Code Playgroud)
随着我的创建:
Flash.setFlashMode("torch");
Parameters p = camera.getParameters();
camera.setParameters(Flash);
camera.startPreview();
Run Code Online (Sandbox Code Playgroud)
我见过人们使用自动对焦,但我不知道这是否有效.
我想我会用一些适用于几乎所有4.0+设备的子弹教程代码来更新它.
public void turnOn() {
camera = Camera.open();
try {
Parameters parameters = camera.getParameters();
parameters.setFlashMode(getFlashOnParameter());
camera.setParameters(parameters);
camera.setPreviewTexture(new SurfaceTexture(0));
camera.startPreview();
camera.autoFocus(this);
} catch (Exception e) {
// We are expecting this to happen on devices that don't support autofocus.
}
}
private String getFlashOnParameter() {
List<String> flashModes = camera.getParameters().getSupportedFlashModes();
if (flashModes.contains(FLASH_MODE_TORCH)) {
return FLASH_MODE_TORCH;
} else if (flashModes.contains(FLASH_MODE_ON)) {
return FLASH_MODE_ON;
} else if (flashModes.contains(FLASH_MODE_AUTO)) {
return FLASH_MODE_AUTO;
}
throw new RuntimeException();
}
Run Code Online (Sandbox Code Playgroud)
真正的关键是设置假的SurfaceTexture,以便预览实际开始.关闭它也很容易
public void turnOff() {
try {
camera.stopPreview();
camera.release();
camera = null;
} catch (Exception e) {
// This will happen if the camera fails to turn on.
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10301 次 |
| 最近记录: |