HarmonyOS surfaceid在nativewindow和js层的surfaceId不互通?
在js中AVRecorder里面的拿到的inputSurface,无法通过OH_NativeWindow_CreateNativeWindowFromSurfaceId创建,显示无效参数?两个surfaceId不互通?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS AVPlayer设置surfaceId报错
300浏览 • 1回复 待解决
HarmonyOS Native C++层能否直接渲染YUV或ARGB数据至指定的surfaceID
518浏览 • 1回复 待解决
HarmonyOS AVPlayer在暂停或完成状态下重新设置surfaceId后,没有画面
305浏览 • 1回复 待解决
HarmonyOS如何通过XComponent(surface)组件的surfaceId自定义渲染(C++)
1064浏览 • 2回复 待解决
HarmonyOS 视频使用AVPlayer播放,如果在暂停状态更换surfaceId会变成黑屏
263浏览 • 1回复 待解决
HarmonyOS videodecoder解码API和nativewindow api 使用问题
427浏览 • 1回复 待解决
HarmonyOS native层js代码调用
476浏览 • 1回复 待解决
如何实现鸿蒙和工厂自动化设备的互联互通
6966浏览 • 3回复 待解决
JS和TS哪个在平时更常用?
3576浏览 • 1回复 已解决
HarmonyOS native层从C++到JS层传图片数据,过大失败
723浏览 • 1回复 待解决
ArkWeb有没有提供FCP和FMP在arkTS层的回调?
857浏览 • 1回复 待解决
HarmonyOS在C++线程上调用napi_create_ark_runtime,如何调用到js层的对象
976浏览 • 1回复 待解决
HarmonyOS 多线程数据互通问题
361浏览 • 2回复 待解决
HarmonyOS 硬件解码器设置nativewindow失败
195浏览 • 1回复 待解决
HarmonyOS C++层如何同步调用JS函数 -
402浏览 • 0回复 待解决
将C++层分配的对象在ArkTS层管理,ArkTS层通过接口访问C++层对象业务
1296浏览 • 1回复 待解决
HarmonyOS NativeWindow中怎么自定义绘制区域的布局
416浏览 • 1回复 待解决
native 层怎么判断从 js 传入的参数是不是 undefined
1095浏览 • 1回复 待解决
如何和EMUI/HarmonyOS(3.1及以下)系统的游戏数据互通?需要游戏侧开发适配吗
2369浏览 • 1回复 待解决
HarmonyOS @Observed/@ObjectLink装饰器可以观察三层四层的嵌套么,第三层数据修改但视图不更新
469浏览 • 1回复 待解决
这里的 nativeWindow 是怎样获取或者创建的,在 demo 中似乎没有展示
430浏览 • 0回复 待解决
HarmonyOS ETS和c++层通信
489浏览 • 1回复 待解决
HarmonyOS web和js交互
454浏览 • 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应该是同一个。