HarmonyOS鸿蒙Next中使用AVScreenCapture.createAVScreenCapture() C/C++ API进行录屏取码流时,创建第三个实例失败

HarmonyOS鸿蒙Next中使用AVScreenCapture.createAVScreenCapture() C/C++ API进行录屏取码流时,创建第三个实例失败 我在使用AVScreenCapture.createAVScreenCapture() C/C++ API进行录屏取码流时,发现可以成功创建第一个和第二个实例。但是,当我尝试创建第三个实例时,API返回了 null,导致我的应用出现空指针异常而崩溃。请问这是 Bug 吗?还是系统本身就有这个限制?

设备是 HUAWEI MateBook Pro,harmonyOS, 24G 内存版本。

6 回复

官方回复,单应用AVScreenCapture实例上限为2个:

image.png

更多关于HarmonyOS鸿蒙Next中使用AVScreenCapture.createAVScreenCapture() C/C++ API进行录屏取码流时,创建第三个实例失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


请检查一下以下权限是否申请了,在进行屏幕录制开发前需要申请相应权限:麦克风权限(ohos.permission.MICROPHONE)、后台长时任务权限(ohos.permission.KEEP_BACKGROUND_RUNNING

过多的录屏任务会增加系统负载,内存不足会导致异常情况,建议做好资源处理,在创建多个录屏的时候,释放不需要的录屏任务,如果必须同时使用多个录屏任务,可以提个工单问一下官方是否支持

你好,权限已经正常申请,第一个第二个实例回调中码流与音频数据都正常,第三个实例创建时失败,怀疑是可能有限制,但不确定。我的应用场景就是要获取屏幕或多个窗口的码流,谢谢,

提一下工单吧,

  • 标题: 如何处理系统故障
  • 创建人: 张三
  • 创建时间: 2023-10-01
  • 状态: 处理中
  • 优先级: 高
  • 类型: 技术支持

描述: 系统在运行过程中频繁出现卡顿现象,已经影响到了日常办公效率。希望尽快查明原因并解决问题。

附件:

在HarmonyOS Next中,AVScreenCapture.createAVScreenCapture() API存在实例数量限制。当前实现最多允许创建2个屏幕捕获实例,尝试创建第3个实例会返回错误。这是框架层的设计限制,与设备性能无关。错误码可能为-1或特定错误值,表明已达到最大实例数。如需多路捕获,需要复用现有实例或调整应用架构。该限制在HarmonyOS 4.0及Next版本中均存在。

根据描述,这很可能是HarmonyOS Next系统层面的限制而非Bug。AVScreenCapture API在设计上可能对同时运行的录屏实例数量做了限制,通常出于系统性能和资源管理的考虑。

在移动设备上,同时运行多个屏幕捕获实例会带来较大的性能开销,包括CPU、GPU和内存资源占用。即使您的设备有24G内存,系统仍可能通过这种限制来确保整体稳定性。建议检查以下两点:

  1. 官方文档是否明确说明实例数量限制
  2. 尝试通过AVScreenCapture.getSupportedCapabilities()查询设备支持的最大实例数

如果需要多路录屏,可以考虑复用已有实例或采用其他架构方案。

回到顶部