簡體   English   中英

C++ 媒體流的 N-API 連續回調

[英]N-API Continuous callbacks for c++ media stream

我正在嘗試為 C++ 媒體播放器創建一個節點接口。 對幀進行解碼后,有一個事件允許我訪問幀數據,我正試圖將其匯集到 node.js 中。 但我似乎無法弄清楚如何讓這種功能與node 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 的好方法。 文檔和示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM