在js中AVRecorder里面的拿到的inputSurface,无法通过OH\_NativeWindow\_CreateNativeWindowFromSurfaceId创建,显示无效参数?两个surfaceId不互通?
在js中AVRecorder里面的拿到的inputSurface,无法通过OH\_NativeWindow\_CreateNativeWindowFromSurfaceId创建,显示无效参数?两个surfaceId不互通?
1.3k 阅读
1 回答539 阅读✓ 已解决
510 阅读
可以通过以下方式排查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应该是同一个。