标签: android-camera2

Android Camera2前置摄像头

我最近注意到不推荐使用Camera API,我找到了名为Camera2的新API.

我已阅读文档,但我并不理解.

所以我的问题是:如何使用新的相机api预览前置摄像头?

只是一个预览,而不是录制.

我想使用这个新API,因为将来我猜测当前的Camera API将被替换并停止工作.

所以我想做好准备,坐下来观看,每个人都会恐慌.XD

android android-5.0-lollipop android-camera2

16
推荐指数
2
解决办法
1万
查看次数

有没有办法裁剪 Image/ImageProxy (在传递给 MLKit 的分析器之前)?

我将CameraX的分析器用例与 MLKit 的BarcodeScanner. 我想先裁剪从相机接收到的图像的一部分,然后再将其传递到扫描仪。

我现在正在做的是将ImageProxy(我在分析器中收到的)转换为Bitmap,裁剪它,然后将其传递给BarcodeScanner. 缺点是这不是一个非常快速和有效的过程。

我还注意到运行此代码时 Logcat 中收到的警告:

ML Kit 检测到您似乎将相机帧作为位图对象传递给检测器。这是低效的。请对camera2 API使用YUV_420_888格式,对(旧)相机API使用NV21格式,并将字节数组直接传递给ML Kit。

不进行转换固然很好ImageProxy,但是如何裁剪我想要分析的矩形呢?

我已经尝试过设置(imageProxy.image.cropRect) 类cropRect的字段Image,但它似乎并不影响最终结果。

android android-image android-camera2 android-camerax google-mlkit

16
推荐指数
2
解决办法
1万
查看次数

如何在camera2 api,android中锁定焦点?

在我的自定义相机找到焦点后,我试图锁定焦点.首先它将AF模式设置为自动:

builder.set(CaptureRequest.CONTROL_AF_MODE,
                    CaptureRequest.CONTROL_AF_MODE_AUTO);
Run Code Online (Sandbox Code Playgroud)

触摸预览后,它会找到焦距,我必须使用以下代码锁定AF和AE:

builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
builder.set(CaptureRequest.CONTROL_AE_LOCK, true);
Run Code Online (Sandbox Code Playgroud)

锁定AE在任何设备中都能正常工作.锁定AF适用于Nexus5和Nexus 5x.但至于三星S5和S6,它一直试图寻找焦点.

锁定焦点的最佳方法是什么?

android android-camera2

15
推荐指数
2
解决办法
9963
查看次数

Android中Camera和Camera2的区别

我正在构建一个类似于社交媒体的应用程序,人们可以在这里分享Instagram等照片和视频.这就是为什么Camera对我的应用非常重要.现在camera2 API让我很困惑.我想在API级别11+上运行我的应用程序.我知道camera2仅适用于API级别21+因此,我需要为旧版本设计两个API(摄像头),为更高版本设计第二个(摄像头2).问题是我刚刚开始学习Android,我不知道这两个API之间的主要区别是什么.

Camera2 API有哪些主要功能?
或Old Camera API有任何缺点吗?

我的应用程序中需要三件事.

1-简单拍摄照片2-连拍图像(创建GIF图像)3-简单视频拍摄.

哪种Camera API对我有好处?

android android-camera android-camera2

15
推荐指数
1
解决办法
9572
查看次数

预览在camera2 apis中延伸

以下是在camera2 apis中使用纹理视图时的屏幕截图.在全屏幕中,预览会拉伸,但在使用较低分辨率(第二张图像)时可以使用.如何在不拉伸的情况下全屏使用此预览.

android screen-resolution android-camera android-textureview android-camera2

15
推荐指数
1
解决办法
1663
查看次数

android textureview全屏预览,正确的宽高比

我一直在使用谷歌camera2 api演示,不幸的是,示例应用程序是为了在屏幕高度的大约70%处显示纹理视图预览,在环顾四周之后,我能够确定这是由AutoFitTextureView覆盖了onMeasure()方法如下图所示:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    int width = MeasureSpec.getSize(widthMeasureSpec);
    int height = MeasureSpec.getSize(heightMeasureSpec);
    if (0 == mRatioWidth || 0 == mRatioHeight) {
        setMeasuredDimension(width, height);
    } else {
        if (width < height * mRatioWidth / mRatioHeight) {
            setMeasuredDimension(width, width * mRatioHeight / mRatioWidth);
        } else {
            setMeasuredDimension(height * mRatioWidth / mRatioHeight, height);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试通过设置正确的高度和宽度来纠正这个setMeasuredDimension(width, height);问题,这解决了高度问题,并从纹理视图中给我一个全屏预览,但是在每个设备上宽高比完全被破坏和翘曲,标准的固定方式是什么这个?我看到很多应用程序在Play商店找到了解决这个问题的方法,但还没能找到解决方案,任何帮助都会有很长的路要走,谢谢.

java android android-camera android-textureview android-camera2

13
推荐指数
2
解决办法
5279
查看次数

Android - 录制视频时在前后摄像头之间切换

我正在尝试实现自定义相机来录制视频.我已经关注了这个样本,它运行正常.

现在,我想通过按钮点击添加"切换摄像头"功能.即使在录制视频时,也应该能够在前/后摄像头之间切换.

因此,请帮助我知道它是否可能?

1.如果是,那么如何?

如果没有那么请建议一些解决方法?

一些示例代码或链接将非常有用......

注意:我一直在谷歌上搜索它,发现一些StackOverFlow的答案就像

Android Camera2 API切换后置摄像头

Android:单击按钮时切换相机

但是,当录制视频时,这些都没有提供切换相机的便利.

请帮忙.

代码与此示例相同.这是Camera2 API.

video android android-layout android-camera android-camera2

13
推荐指数
2
解决办法
1万
查看次数

使用Android Camera2 API进行人脸检测和绘制圆圈

目前我正在尝试将Camera2.Face转换为实际视图的rect,以便在Camera2 API检测到的脸部上绘制圆圈.

我可以通过以下代码获取面数及其数据到Callback中:

private CameraCaptureSession.CaptureCallback mCaptureCallback
= new CameraCaptureSession.CaptureCallback() {
    private void process(CaptureResult result) {
        Integer mode = result.get(CaptureResult.STATISTICS_FACE_DETECT_MODE);
        Face [] faces = result.get(CaptureResult.STATISTICS_FACES);
        if(faces != null && mode != null)
            Log.e("tag", "faces : " + faces.length + " , mode : " + mode ); 
    }

    @Override
    public void onCaptureProgressed(CameraCaptureSession session, CaptureRequest request, CaptureResult partialResult) {
        process(partialResult);
    }

    @Override
    public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) {
        process(result);
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试使用下面的代码将Face rect转换为实际的视图坐标(似乎它不起作用):

/**
* Callback from the CameraCaptureSession.CaptureCallback …
Run Code Online (Sandbox Code Playgroud)

android face-detection android-camera android-camera2

13
推荐指数
1
解决办法
3793
查看次数

如何获得像Instagram一样的1:1比例的Android Camera2?

我的问题很简单:

如何以android.hardware.Camera21:1的比例获得Android 而不像Instagram那样变形?

我测试了GoogeSamples项目android-Camera2Basic.但是当我以1:1的比例更改预览时,图像会变形.有没有人对此有所了解?

在此输入图像描述

android android-camera2

12
推荐指数
1
解决办法
4028
查看次数

如何从色彩校正增益中获得色温

我试图找出相机拍摄的照片的色温.

final CameraCaptureSession.CaptureCallback previewSSession = new CameraCaptureSession.CaptureCallback() {
    @Override
    public void onCaptureStarted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, long timestamp, long frameNumber) {
        super.onCaptureStarted(session, request, timestamp, frameNumber);
    }

    @Override
    public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, TotalCaptureResult result) {
        super.onCaptureCompleted(session, request, result);
        RggbChannelVector rggbChannelVector = result.get(CaptureResult.COLOR_CORRECTION_GAINS);
        getColorTemperature(rggbChannelVector);

        startCamera();
    }
};

private void getColorTemperature(RggbChannelVector rggbChannelVector) {
    //rggbChannelVector.getRed() = 2.192929
    //rggbChannelVector.getGreenEven() = 1.0
    //rggbChannelVector.getGreenOdd() = 1.0
    //rggbChannelVector.getBlue() = 1.832323
}
Run Code Online (Sandbox Code Playgroud)

iOS似乎有一个随时可用的方法来执行temperatureAndTintValues

在搜索类似的东西时(用Java或我可以采用的任何其他语言),几乎所有这些方法都期望RGB值具有[0, 255]范围.

将XYZ转换为CCT(相关色温)的方法很少,但即使要使XYZ值正确,我也需要RGB值. [0, 255]

正如你可以看到从数值COLOR_CORRECTION_GAINS是 …

android colors android-camera android-camera2

11
推荐指数
1
解决办法
2075
查看次数