JavaCamera2View启用flash opencv

标签 java android opencv javacameraview

我目前正在使用 JavaCameraView 来启用 Flash。不幸的是,camera1 的 API 已被弃用,因此我被迫切换到 JavaCamaera2View。问题是我无法启用闪光灯,因为我无法像 JavaCameraView 那样访问相机。
你有什么解决办法?

这是我现在的代码

public class CustomCamera extends JavaCameraView implements PictureCallback {
    private String mPictureFileName;
    public CustomCamera(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public List<String> getEffectList() {
        return mCamera.getParameters().getSupportedFlashModes();
    }
    public boolean isEffectSupported() {
        return (mCamera.getParameters().getFlashMode() != null);
    }
    public String getEffect() {
        return mCamera.getParameters().getFlashMode();
    }
    public void setEffect(String effect) {
        mCamera.getParameters();
        Camera.Parameters params = mCamera.getParameters();
        params.setFlashMode(effect);
        mCamera.setParameters(params);
    }
    public List<Size> getResolutionList() {
        return mCamera.getParameters().getSupportedPreviewSizes();
    }
    public void setResolution(int w, int h) {
        disconnectCamera();
        mMaxHeight = h;
        mMaxWidth = w;
        connectCamera(getWidth(), getHeight());
    }

    public Size getResolution() {
        return mCamera.getParameters().getPreviewSize();
    }

    public void takePicture(final String fileName) {
        this.mPictureFileName = fileName;
        // Postview and jpeg are sent in the same buffers if the queue is not empty when performing a capture.
        // Clear up buffers to avoid mCamera.takePicture to be stuck because of a memory issue
        mCamera.setPreviewCallback(null);

        // PictureCallback is implemented by the current class
        mCamera.takePicture(null, null, this);
    }

    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        // The camera preview was automatically stopped. Start it again.
        mCamera.startPreview();
        mCamera.setPreviewCallback(this);

        // Write the image in a file (in jpeg format)
        try {
            FileOutputStream fos = new FileOutputStream(mPictureFileName);
            fos.write(data);
            fos.close();
        } catch (java.io.IOException e) {
            Log.e("PictureDemo", "Exception in photoCallback", e);
        }

    }

    public void cameraRelease() {
        if(mCamera != null){
            mCamera.release();
        }
    }
}

最佳答案

关于JavaCamera2View启用flash opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60754638/

相关文章:

java - 无法加载opencv_java249 : findLibrary returned null - OpenCV in Android Studio

android - 在 Android (Moto Z) 上禁用自动图像稳定?

java - 测试时如何恢复表中的一条记录/行?

java - EditText 不断返回空 - Android

java - Hibernate sql错误:java. lang.String无法转换为java.lang.Integer

javascript - 如何设置 ListView 的每个单元格具有单独的白色背景?

android - 以编程方式更改小部件布局

python - 在Python中匹配一大组(x,y)指向另一组具有异常值的点

java - 使用Java从html中提取 anchor 标记

java - 我可以将 Google 的数据存储区用于桌面应用程序吗?