HarmonyOS鸿蒙Next中请官方技术支持回答:摄像头双路预览调用setFrameRate函数设置帧率会出现四个错误情况
HarmonyOS鸿蒙Next中请官方技术支持回答:摄像头双路预览调用setFrameRate函数设置帧率会出现四个错误情况
-
正常情况:
代码:this.previewOutput.setFrameRate( 1, 5 ); this.imageReceiverPreviewOutput.setFrameRate( 1, 5 );结果:
previewOutput和imageReceiverPreviewOutput的帧率都是5。 -
错误情况:
代码:this.previewOutput.setFrameRate( 1, 5 ); this.imageReceiverPreviewOutput.setFrameRate( 1, 30 );结果:
hilog报错:{SetFrameRate():1087} PreviewOutputNapi::SetFrameRate! 7400110。 -
正常情况:
代码:this.previewOutput.setFrameRate( 1, 5 );结果:
previewOutput的帧率是5,imageReceiverPreviewOutput的帧率是30。 -
正常情况:
代码:this.imageReceiverPreviewOutput.setFrameRate( 1, 5 );结果:
previewOutput的帧率是30,imageReceiverPreviewOutput的帧率是5。 -
错误情况:
代码:this.previewOutput.setFrameRate( 60, 60 ); this.imageReceiverPreviewOutput.setFrameRate( 60, 60 );结果:
previewOutput看不出帧率,imageReceiverPreviewOutput的帧率是26。 -
错误情况:
代码:this.previewOutput.setFrameRate( 60, 60 );结果:
previewOutput看不出帧率,imageReceiverPreviewOutput的帧率是13。 -
错误情况:
代码:this.imageReceiverPreviewOutput.setFrameRate( 60, 60 );结果:
previewOutput看不出帧率,imageReceiverPreviewOutput的帧率是30。
demo下载地址:https://gitee.com/chen_yi_ze/harmony-camera-frame-rate-error
具体代码在Index.ets文件的100行到112行。
设备:Nova 12 Pro,系统:HarmoryOS 6.1.0,DevEco:6.1.1 Beta1
更多关于HarmonyOS鸿蒙Next中请官方技术支持回答:摄像头双路预览调用setFrameRate函数设置帧率会出现四个错误情况的实战教程也可以访问 https://www.itying.com/category-93-b0.html
开发者您好,设置两个预览帧率时首先需要保持帧率在系统支持范围内(可通过getSupportedFrameRates接口查询支持范围),然后要保证两边设定的帧率参数一致。可通过getActiveFrameRate查询setFrameRate设置过的帧率,如果未设置,则查询到默认值0(仅由于未显性设置而无法查询到实际值)。
本地进行场景验证分析结果如下:
1、情况2报错,原因是两个值确实不一致(需要设置为相同值);
2、情况5、6、7,可通过getActiveFrameRate查询帧率。
更多关于HarmonyOS鸿蒙Next中请官方技术支持回答:摄像头双路预览调用setFrameRate函数设置帧率会出现四个错误情况的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你虽然通过getActiveFrameRate查询,你只是看到了表面参数而已,这个参数并不等于实际的帧率,你没有验证实际的图像帧率,你可以通过打印日志来验证imageReceiverPreviewOutput回调函数接收到的实际的帧率。
你能不能仔细一点,换个人来回答我的问题,你太不专业了。
开发者您好,很抱歉未能解决您的问题。已为您上升问题处理中,请耐心等待。
开发者您好,问题正在处理中,请耐心等待。
的确有点问题,蹲一下
摄像头双路预览下setFrameRate的四个常见错误:
- 传入帧率参数超出设备支持范围(需查
getSupportedFrameRates)。 - 双路流帧率模式冲突(如一路固定帧率,另一路动态调节)。
- 调用时摄像头资源未正确初始化或已释放。
- 硬件/驱动限制导致指定帧率不可用(如低光照下帧率自动回退)。
当对两个预览输出调用 setFrameRate 设置不同的帧率时会出现 7400110 错误,原因是双路预览共享同一个相机流配置,它们必须使用兼容的帧率范围(第一个参数)。同时设置 5 和 30 会导致冲突被视为无效参数。设置 60fps 时出现帧率异常是因为 Nova 12 Pro 的相机硬件不支持 60fps 输出,调用失败后流使用默认帧率,而 ImageReceiver 通道受处理性能限制出现掉帧,所以实际帧率低于预期且 previewOutput 无法正常显示。

