Camera.Parameters.setRecordingHint和纵横比

时间:2014-02-26 21:51:21

标签: android android-camera

我发现Camera.Parameters.setRecordingHint周围有些奇怪的行为,我想更好地理解。

如果我将其设置为true,预览图像的大小可能会与我传递给setPreviewSize的大小不同。这取决于我设置的大小 - 一些宽高比有效,有些则没有。

请参阅下面的屏幕截图 - setPreviewSize已设置为640x480,但其中一个将setRecordingHint设置为true,另一个设置为false。我有产生此效果的代码on GitHub

这是预期的行为吗? setRecordingHint的文档没有表明这样的内容。

comparison of front-facing camera on S4 with setRecordingHint true/false

2 个答案:

答案 0 :(得分:7)

您需要将video-size参数设置为正确的值。我遇到了同样的问题 - 预览尺寸为640x480,预览在使用setRecordingHint(true)时显得拉长。然后,我使用getParameters().flatten()打印出为Camera设备设置的所有参数。我的video-size参数实际设置为1920x1080,导致宽高比不正确。您可以使用params.set("video-size", "WxH")更改此参数。只有这样才能使宽高比正确。

答案 1 :(得分:0)

我已经看到很多随机行为,不幸的是它也取决于oem。我看到一些手机的帧率有所不同,例如nexus 4预览帧率下降了一半。我们依赖预览帧回调来达到我们想要的帧率,所以我们不得不在手机模型上切换它。