尽管值在 getPreviewFpsRange 的范围内,但 setPreviewFpsRange 不起作用

2023-12-15

这个简单的代码:

Camera.Parameters params = currentCamera.getParameters();
params.setPreviewFpsRange( 10000, 15000 );
currentCamera.setParameters( params );

尽管允许的值在 5000 到 120000 的允许范围内,但它不适用于我的 Nexus 4(或摩托罗拉 Atrix)。

当我尝试分别使用不同于 5000 和 120000 的任何最小值或最大值时,我得到:

setPreviewFpsRange(const android::QCameraParameters&): error: FPS range 
value not supported

这很愚蠢。另外,我在我的旧摩托罗拉 Atrix 上尝试了此代码(显示有效的 fps 范围在 10000 到 30000 之间),但它也不起作用。有什么可以做的吗?

通过对该主题的搜索,我发现 a) 任何地方都很少有关于该主题的材料,b) 某些平台可能根本不支持此功能。不过,有点奇怪的是,谷歌当前的旗舰手机 Nexus 4 并不支持它……


啊啊!因此,作为寻找答案的一部分,我使用应用程序检查了 Nexus 10 的操作情况。事实证明, getSupportedFpsRange 函数返回的值是表示可以输入到 setPreviewFpsRange 中的精确双元组的范围,并且任何其他双元组不受支持(无论如何,据我所知)。

我发现这一点是因为 Nexus 10 从 getSupportedFpsRange 返回多个双值。我在此处复制了三个设备的 getSupportedFpsRange 返回值。

支持的范围值示例

LG Nexus 4:

预览 fps-范围-值=(5000,120000);

摩托罗拉 Atrix:

预览 fps-范围-值=(10000,30000);

三星 Nexus 10:

预览 fps 范围值=(15000,15000),(24000,24000),(25000,25000),(15000,30000),(30000,30000);

结论

我们做不到

params.setPreviewFpsRange( 29000, 29000 );

强制预览为 29fps,除非设备已经明确支持该双倍。

当然,我研究此功能的最初原因是希望在我自己的应用程序中复制 Nexus 4 丝般流畅的相机预览。这似乎最终证明,至少在 Nexus 4 上,setPreviewFpsRange 对此无济于事。

是时候继续寻找了。 (:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尽管值在 getPreviewFpsRange 的范围内,但 setPreviewFpsRange 不起作用 的相关文章

随机推荐