我发现Camera.Parameters.setRecordingHint周围有些奇怪的行为,我想更好地理解。
如果我将其设置为true
,预览图像的大小可能会与我传递给setPreviewSize的大小不同。这取决于我设置的大小 - 一些宽高比有效,有些则没有。
请参阅下面的屏幕截图 - setPreviewSize
已设置为640x480,但其中一个将setRecordingHint设置为true
,另一个设置为false
。我有产生此效果的代码on GitHub。
这是预期的行为吗? setRecordingHint的文档没有表明这样的内容。
答案 0 :(得分:7)
您需要将video-size
参数设置为正确的值。我遇到了同样的问题 - 预览尺寸为640x480
,预览在使用setRecordingHint(true)
时显得拉长。然后,我使用getParameters().flatten()
打印出为Camera
设备设置的所有参数。我的video-size
参数实际设置为1920x1080
,导致宽高比不正确。您可以使用params.set("video-size", "WxH")
更改此参数。只有这样才能使宽高比正确。
答案 1 :(得分:0)
我已经看到很多随机行为,不幸的是它也取决于oem。我看到一些手机的帧率有所不同,例如nexus 4预览帧率下降了一半。我们依赖预览帧回调来达到我们想要的帧率,所以我们不得不在手机模型上切换它。