gpt4 book ai didi

android - 某些图片尺寸导致 Camera.takePicture() 失败

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:11 28 4
gpt4 key购买 nike

总结:对于某些图片尺寸,将相机图片尺寸显式设置为支持的尺寸会导致在调用 Camera.takePicture() 后不调用回调。

详细信息:

我正在开发一个简单的相机应用程序,它使用 Camera API 来捕捉图像。它遵循 Camera 类文档中描述的准则,并在各种设备上可靠地工作。

调用 Camera.open() 后,应用调用 camera.getParameters() 获取 Camera.Parameters 对象,然后调用该对象的 getSupportedPictureSizes()。它遍历支持的图片尺寸并选择一个符合某些标准的尺寸对。然后调用 setPictureSize(),传入选定的宽度和高度。最后,它通过调用 camera.SetParameters() 并传入 Camera.Parameters 对象来设置相机参数。

我在使用 HTC Desire 620 时遇到问题。此设备上报告的支持图片尺寸之一是 1184x1184。如果我设置此图片大小然后调用 camera.takePicture(),则不会调用任何回调(快门、原始或 jpeg)并且相机对象似乎处于无效状态。如果我将图片大小明确设置为任何其他受支持的大小(正方形或矩形长宽比),则会调用回调。但对于 1184x1184 它们不是。

有人遇到过这种情况吗?有没有办法提前知道支持的图片尺寸是否会导致此类问题?我在这里缺少什么?

编辑:打字错误

最佳答案

我没有HTC Desire 620,所以我无法验证您的发现。但我在我的 Android 相机开发生涯中见过不少设备。您描述的问题是确实发生的情况之一。我宁愿忘记 Honeycomb 2.3 的日子,每个受支持的设备都需要自己的一套解决方法。但即使是后来的事情也从来都不是完美的。

例如,Galaxy Nexus 设备声称通过 getSupportedPreviewSizes() 支持 QVGA。但事实并非如此。将预览大小设置为 320x240 仍会在 onPreviewFrame() 中生成 640x480 字节数组。

许多错误与视频与预览大小有关。在纵向方向上会弹出一些错误。等等。

正如您所注意到的,有问题的设置通常只会导致回调永远不会到达。但始终使用 try...catch 包装 camera.setParameters() 和其他相机调用仍然是一个好习惯。

密切关注奇怪的依赖关系:例如夜景不能与连续对焦共存。不幸的是,我们所知的 Camera API 无法提供此类信息。

如果您浏览处理各种相机设备的开源项目,您会发现它们会跟踪不成功的设置(参数集),并且只会在这些设置上失败一次。

更新 我遇到的一个不明显的依赖关系是在设置预览大小和设置图片大小之间。例如。后者为16:9宽高比时,画面无法设置为4:3。

更新 here 是关于三星 Galaxy S3 中“支持的”图片尺寸错误的故事。使用它会导致相机错误 1001。

关于android - 某些图片尺寸导致 Camera.takePicture() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30239292/

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