用于 c++ 媒体流的 N-API 连续回调
N-API Continuous callbacks for c++ media stream
我正在尝试为c ++媒体播放器创建一个节点接口。解码帧后,有一个事件允许我访问帧数据,我正在尝试将其漏斗到节点中。但是我似乎无法弄清楚如何让这种功能与节点 API 中可用的功能一起使用。目前,我的方法是找出一种推送机制来将数据从 c++ 获取到 javascript,我所需要的只是在 javascript 中初始化回调,因为它看起来更优雅。如果失败,我可以在 js 中创建一个轮询循环来检查是否有新的帧数据,但它似乎效率较低。
我已经尝试使用napi_create_async_work,通过在执行参数函数中创建一个 lambda 函数,这将允许我为每个帧回调调用 napi_make_callback,但随后出现以下错误:
Fatal error in HandleScope::HandleScope
Entering the V8 API without proper locking in place
我可能错误地接近了这一点,这是我第一次使用 n-api。
欢迎任何帮助,谢谢!
这个问题主要与你不能在事件循环的主线程之外访问V8(JavaScript(内存有关。如果要创建异步线程,则默认情况下还会创建新的内存堆栈。
幸运的是,修复程序正在进行中,它应该允许线程安全访问 napi_create_threadsafe_function(此处为示例(
在那之前只有一个标头C++包,它与C++ N-API 包装器很好地集成
Napi-addon-api 是更新的。这些是使用 Napi::ThreadSafeFunction 的好方法。 文档和示例。
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- 模板元程序查找相似的连续类型名称
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- EASTL矢量<向量<int>>连续的
- 在gtest.中使用fff.h模拟系统API
- 有没有任务栏API可以立即应用注册表更改
- C++win32 API创建多个类似视口的窗口
- 当需要超过16GB的连续内存时,内存分配失败
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 如何将真正的字符串从python c-api转换为python脚本
- 使用Qt框架在c ++类中创建API调用
- Libreoffice API (UNO):需要更改用户的 xTextField 文本
- 我应该如何表示我拥有的连续元素序列?
- 蛇在C++不会连续转两次
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- 用于 c++ 媒体流的 N-API 连续回调