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 内存版本。
官方回复,单应用AVScreenCapture实例上限为2个:
更多关于HarmonyOS鸿蒙Next中使用AVScreenCapture.createAVScreenCapture() C/C++ API进行录屏取码流时,创建第三个实例失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
请检查一下以下权限是否申请了,在进行屏幕录制开发前需要申请相应权限:麦克风权限(ohos.permission.MICROPHONE
)、后台长时任务权限(ohos.permission.KEEP_BACKGROUND_RUNNING
)
过多的录屏任务会增加系统负载,内存不足会导致异常情况,建议做好资源处理,在创建多个录屏的时候,释放不需要的录屏任务,如果必须同时使用多个录屏任务,可以提个工单问一下官方是否支持
你好,权限已经正常申请,第一个第二个实例回调中码流与音频数据都正常,第三个实例创建时失败,怀疑是可能有限制,但不确定。我的应用场景就是要获取屏幕或多个窗口的码流,谢谢,
根据描述,这很可能是HarmonyOS Next系统层面的限制而非Bug。AVScreenCapture API在设计上可能对同时运行的录屏实例数量做了限制,通常出于系统性能和资源管理的考虑。
在移动设备上,同时运行多个屏幕捕获实例会带来较大的性能开销,包括CPU、GPU和内存资源占用。即使您的设备有24G内存,系统仍可能通过这种限制来确保整体稳定性。建议检查以下两点:
- 官方文档是否明确说明实例数量限制
- 尝试通过AVScreenCapture.getSupportedCapabilities()查询设备支持的最大实例数
如果需要多路录屏,可以考虑复用已有实例或采用其他架构方案。