首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Camera2输出大小

Android Camera2输出大小
EN

Stack Overflow用户
提问于 2015-07-12 05:52:22
回答 2查看 23.5K关注 0票数 11

我已经在安卓棒棒糖上测试了新的Camera2 API。我想获取支持的预览大小:

代码语言:javascript
复制
StreamConfigurationMap streamConfigurationMap = cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
Size[] sizes = streamConfigurationMap.getOutputSizes(SurfaceTexture.class);

三星Galaxy Tab S的最大预览尺寸为1440x1080px,分辨率为2560x1600px。所以我的previewSize是1440x1080px,TextureView表面尺寸是2560x1600px,所以图像失真了。

我测试了旧的Camera API,它已被弃用。

代码语言:javascript
复制
Camera.Parameters parameters =  camera.getParameters();
List<Camera.Size> sizes = parameters.getSupportedPictureSizes();

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

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

EN

回答 2

Stack Overflow用户

发布于 2019-03-31 23:59:39

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

您可以通过camCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);返回摄像头level of support对应的int来检查摄像头API2是否支持。如果你得到的级别等于CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY,基本上你的手机制造商不支持摄像头API2。

-->因此,SCALER_STREAM_CONFIGURATION_MAP可能会返回与摄像头API1可访问的分辨率不同的分辨率。这就是为什么你会得到

最大预览尺寸为1440x1080px

真正让我震惊的是,这个问题是4年前提出的……仍然有一些制造商不愿意升级到相机API2。虽然Camera API2为你提供了更多的功能,但也许Camera API1毕竟还没有消亡。

如果能有一些碎片信息就好了,至少知道如果你使用Camera API2的话你实际瞄准了多少个设备(由于传统的支持,它并不是所有的Android L和更高版本,开发人员应该知道这一点)

票数 5
EN

Stack Overflow用户

发布于 2017-04-19 23:58:13

替换

代码语言:javascript
复制
Size[] sizes = streamConfigurationMap.getOutputSizes(SurfaceTexture.class);

代码语言:javascript
复制
Size[] sizes = streamConfigurationMap.getOutputSizes(ImageFormat.JPEG)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31362202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档