java - 有没有办法在不使用相机方法的情况下在 Android 中使用手电筒?

标签 java android android-camera flashlight image-scanner

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

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

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

这是我目前使用的代码,它可以打开/关闭手电筒,但就像我说的......这会覆盖扫描仪,我需要相机/扫描仪同时运行才能识别我的图片。

公共(public)类 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();
}

最佳答案

不,没有其他方法可以使用 Flash。但也许您可以与扫描仪“共享”相机对象。

无论如何,Activity.onCreate() 中的 Camera.open() 和 Activity.onStart() 中的打开手电筒看起来都不正确。要成为其他应用程序中的好公民,您的应用程序不应在 onResume() 之前获取摄像头并在 onPause() 之前释放它。

关于java - 有没有办法在不使用相机方法的情况下在 Android 中使用手电筒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34552565/

相关文章:

java - 我的基于 Firebase 的登录应用程序不断停止。我找不到解决方案

android - 无法解析符号 'AndroidJUnit4'

android - 在自动模式下如何获取相机准确的白平衡参数值?

android - 如何在 Android 中的相机捕获图像上设置实时帧

java - 创建Android Studio项目时出现异常

java - 使用从头开始创建的 java 将彩色图像转换为黑白图像

java - 如何只删除标点符号但留下重音字母?

Android如何按列对 ListView 中的对象列表进行排序

android - NoClassDefFoundError com.facebook.react.bridge.WritableNativeMap

linux - 使用带有 v4l2 插件、ffmpeg 或 gstreamer 的 obs 将静态图像流式传输到 v4l2loopback