HarmonyOS surfaceid在nativewindow和js层的surfaceId不互通?

在js中AVRecorder里面的拿到的inputSurface,无法通过OH\_NativeWindow\_CreateNativeWindowFromSurfaceId创建,显示无效参数?两个surfaceId不互通?

阅读 499
1 个回答

可以通过以下方式排查OH\_NativeWindow\_CreateNativeWindowFromSurfaceId无法创建有效窗口的问题:

1.SurfaceId的获取:

确保在prepare事件成功触发后调用getInputSurface方法获取surfaceId。因为在此之前,SurfaceId可能还未准备好。确认SurfaceId是有效的,并且没有被释放。

2.SurfaceId的传递:

确保传递给OH\_NativeWindow\_CreateNativeWindowFromSurfaceId的surfaceId与AVRecorder获取的surfaceId一致。

确认OH\_NativeWindow\_CreateNativeWindowFromSurfaceId的实现是否正确,可能存在接口版本不一致或其他参数传递错误。

3.OHNativeWindow的创建:

确保在调用OH\_NativeWindow\_CreateNativeWindowFromSurfaceId之前,已经正确创建了OHNativeWindow实例。如果使用的是较新版本的接口,确保正确使用了OH\_NativeWindow\_CreateNativeWindow方法。

由于SurfaceId在音视频录制和播放过程中都会被使用,因此通过AVRecorder获取的surfaceId与OH\_NativeWindow\_CreateNativeWindowFromSurfaceId获取的surfaceId应该是同一个。

logo
HarmonyOS
子站问答
访问
宣传栏