HarmonyOS 从底层频繁回调到JS,保存的数据有问题
1、把一包包音频数据从JS传到C层,然后解码,最后返回JS保存成文件。
2、这是一个循环过程,每包数据间隔是10-30ms。
3、结果JS保存的数据是有问题的,而在回调前,在C层保存没问题。
C代码片段:
static int decode_stream_output(void *buf, int size, void *priv) {
NapiContext *napiContext = (NapiContext *)priv;
CallbackContext *callbackContext = (CallbackContext *)malloc(sizeof(CallbackContext));
callbackContext->size = size;
callbackContext->buf = (unsigned char *)malloc(sizeof(unsigned char) * size);
memcpy(callbackContext->buf, buf, size);
fwrite(callbackContext->buf, 1, callbackContext->size, fout);//在这保存的数据没问题
napi_acquire_threadsafe_function(napiContext->threadSafeFunc);
napi_call_threadsafe_function(napiContext->threadSafeFunc, callbackContext, napi_tsfn_blocking);
return 0;
}
JS代码片段:
let listener: OnStreamDecodeListener = {
onDecoded: (outData: ArrayBuffer): void => {
writeStream.write(outData).then((writeSize) => {//保存的数据有问题
writeStream.flush();
})
}
}
nativeAPI.setOnStreamDecodeListener(listener)
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
Napi回调ArkTS,Native侧日志通过监听回调到JS侧
1210浏览 • 1回复 待解决
有没有从ts设置回调到c++层,然后c++再回调到ts的示例代码?
1109浏览 • 1回复 待解决
HarmonyOS 子线程中,实时音频数据,回调到UI线程的最佳方案
44浏览 • 1回复 待解决
fileio.write写buffer数据有问题
4688浏览 • 1回复 待解决
HarmonyOS JS和TS底层渲染模式
91浏览 • 1回复 待解决
HarmonyOS Camera kit 双路预览方案频繁开关相机底层崩溃
476浏览 • 1回复 待解决
native回调到ts层的object,ts层获取其成员变量
1090浏览 • 1回复 待解决
HarmonyOS C++自创线程如何回调到ArkTS应用中?
336浏览 • 1回复 待解决
物联网产生的数据有什么特征?
4328浏览 • 1回复 待解决
HarmonyOS ListItemGroup中ListItem数据有更新,如何刷新List?
176浏览 • 1回复 待解决
mysqldump搭建从库同步数据问题
3181浏览 • 0回复 待解决
调用Scan Kit扫描专用底层码流接口访问数据问题
1942浏览 • 1回复 待解决
HarmonyOS Swiper填充数据后,onChange方法的回调是从index=1开始的,预期是从index=0开始的
136浏览 • 1回复 待解决
HarmonyOS 使用socket发送数据频繁容易报2301004错误
78浏览 • 1回复 待解决
业务数据频繁更新的场景 用redis是否合适?
2823浏览 • 1回复 待解决
HarmonyOS native层从C++到JS层传图片数据,过大失败
491浏览 • 1回复 待解决
ohos.telephony.data (蜂窝数据) data.isCellularDataEnabled方法返回数据有误
524浏览 • 1回复 待解决
HarmonyOS web 使用javaScriptProxy添加js回调,使用指定name问题
166浏览 • 1回复 待解决
如何解决底层库无法调试的问题?
1008浏览 • 1回复 待解决
HarmonyOS 数据库操作的时候系统底层抛出了异常
223浏览 • 1回复 待解决
本地保存之后,重新运行模拟器,保存的数据不存在,是模拟器的问题还是用的保存方法有问题?
265浏览 • 1回复 待解决
HarmonyOS 框架的底层原理相关
82浏览 • 1回复 待解决
HarmonyOS 计算直接是转成number类型进行加减乘除吗?计算完数据有精度异常的问题怎么避免?
139浏览 • 1回复 待解决
PreferenceManager保存的数据经常丢失
344浏览 • 1回复 待解决
HarmonyOS 使用系统 的Preferences来保存数据,获取不到数据
505浏览 • 1回复 待解决
如描述,当调用 writeStream.write(outData) 函数时,Node.js 会尝试将数据写入流,但不会等待写入操作完成就继续执行后面的代码。
在异步 write 的情况下,可能在数据完全写入之前就调用了 flush 或其他后续操作,导致保存的数据有误。而在同步 writeSync 的情况下,数据完全写入后才会继续执行后续的代码。
参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#writesync