gpt4 book ai didi

Android Camera2 输出尺寸

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:33 28 4
gpt4 key购买 nike

我已经在 Android Lollipop 上测试了新的 Camera2 API。我想获取支持的预览尺寸:

StreamConfigurationMap streamConfigurationMap = cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
Size[] sizes = streamConfigurationMap.getOutputSizes(SurfaceTexture.class);

在分辨率为 2560x1600 像素的 Samsung Galaxy Tab S 上,最大预览尺寸为 1440x1080 像素。所以我的 previewSize 是 1440x1080px,TextureView 表面尺寸是 2560x1600px,所以图像是扭曲的。

我测试了已弃用的旧相机 API。

Camera.Parameters parameters =  camera.getParameters();
List<Camera.Size> sizes = parameters.getSupportedPictureSizes();

上面的代码返回 32 种不同的预览尺寸组合,例如:2560x19201920x10801080x19202560x2560 code> 等。在这种情况下,我可以选择最佳尺寸并显示正确的图像。

我不知道如何强制新 API 获得最佳大小。我知道解决方案是调整显示预览的 View 大小,但内置相机应用程序可以在全屏模式下正常工作。预先感谢所有建议!

最佳答案

正如@Alex Cohn 所说,这取决于制造商是否接受 Camera API2。

您可以检查是否支持 Camera API2camCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); 返回对应于 level of supportint适用于相机 API2。如果您获得的级别等于 CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY,则基本上您的手机制造商不支持 Camera API2。

--> 因此,SCALER_STREAM_CONFIGURATION_MAP 可能会返回与使用 Camera API1 可访问的分辨率不同的分辨率。这就是你得到的原因

the maximum preview size is 1440x1080px

令我震惊的是,这个问题是 4 年前提出的……而且仍然有制造商不关心升级到 Camera API2。虽然 Camera API2 为您提供了更多功能,但也许 Camera API1 还没有死。

如果你使用 Camera API2,最好能有一些 fragment 化信息,至少知道你实际定位了多少设备(由于 LEGACY 支持,开发人员应该知道这一点,所以并不是所有的 Android L 及更高版本)

关于Android Camera2 输出尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31362202/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com