首页 文章

有没有办法在Android中使用手电筒而不使用Camera方法?

提问于
浏览
2

请在将此标记为重复之前阅读该问题 . 我正在尝试使用本网站其他代码中显示的Camera方法访问LED /手电筒 WITHOUT . 谢谢 .

我正试图在Android中使用手电筒/手电筒 . 我找到并实现了用于执行此操作的代码 . 我遇到的问题是我使用的图像识别API使用相机作为图像扫描仪,并且它们没有开灯/关灯功能 . 当我尝试覆盖他们的方法并使用Camera方法打开/关闭手电筒时,这可行,但是,Camera方法现在控制窗口,他们的扫描仪不再具有屏幕优先权 .

所以我想要确定的是......有没有其他方法可以在不使用Camera方法和预览功能的情况下打开手电筒/手电筒 . 任何人都知道如何绕过相机使用手电筒/手电筒?任何信息将不胜感激 .

这是我目前使用的代码,它正在打开/关闭手电筒,但就像我说的......这会覆盖扫描仪,我需要相机/扫描仪同时操作来识别我的图像 .

公共类Flashlight扩展AutoScannerSession {

Camera cam;
private CameraManager mCameraManager;
private Context context;
private Scanner scanner;
private AutoScannerSession.Listener listener;
private boolean advancedListener = false;


public Flashlight(Activity parent, Scanner scanner, Listener listener, SurfaceView preview) {
    super(parent, scanner, listener, preview);
    cam = Camera.open();
    cam.setErrorCallback(new Camera.ErrorCallback() {
        @Override
        public void onError(int error, Camera camera) {
            Log.e("erro", error +"");
        }
    });
    this.context = parent;
    this.mCameraManager = new CameraManager(parent, this, preview);
    this.scanner = scanner;
    this.listener = listener;
    if(listener instanceof AutoScannerSession.AdvancedListener) {
        this.advancedListener = true;
    }

}

@Override
public void start() {
    super.start();
    //flashOn();

}

public void flashOn() {
    android.hardware.Camera.Parameters p = cam.getParameters();
    p.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH);
    cam.setParameters(p);
    //cam.startPreview();
}

public void flashOff() {
    cam.stopPreview();
    cam.release();
}

@Override
public void stop() {
    super.stop();
    flashOff();
}

2 回答

  • 1

    没有其他方法可以使用闪存 . 但可能你可以用扫描仪“共享”相机对象 .

    无论如何,Activity.onCreate()中的Camera.open()和在Activity.onStart()中打开手电筒看起来不正确 . 要成为其他应用程序中的好公民,您的应用程序不应该在onResume()之前获取相机并且不迟于onPause()发布它 .

  • 0

    Code Snippet打开相机闪光灯 .

    Camera cam = Camera.open();     
    Parameters p = cam.getParameters();
    p.setFlashMode(Parameters.FLASH_MODE_TORCH);
    cam.setParameters(p);
    cam.startPreview();
    

    代码片段可关闭相机指示灯 .

    cam.stopPreview();
      cam.release();
    

相关问题