HarmonyOS 生产者消费者线程之间如何传递数据

现在使用AudioCapturer接口进行录音,录音数据需要进行实时播放(使用AudioRenderer 接口)。

  1. 录音接口中注册了 audioCapturer.on('readData', (buffer: ArrayBuffer) => { });方法用于处理录音数据。
  2. 放音接口中注册了audioRenderer.on('writeData', async (buffer) => {})用于写入需要播放的数据。但是怎么才能把1里的数据传递到2中呢?比如其他操作系统都有互斥锁、信号量用来管理共享数据,但是看ArkTS中没有这样的东西,那应该使用什么来维护公共数据的同步性呢?
HarmonyOS
2024-12-25 15:00:17
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

当前audioCapturer.on('readData', (buffer: ArrayBuffer) => { })和audioRenderer.on('writeData', async (buffer) => {})两个回调接口不支持同步,只能在 audioCapturer.on读到缓冲区,在audioRenderer.on将缓冲区的数据写入。出于性能的考虑,推荐使用ndk接口实现音频录制和播放:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/using-ohaudio-for-recording-V5

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/using-ohaudio-for-playback-V5

demo:https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Native/Audio

分享
微博
QQ
微信
回复
2024-12-25 17:26:45
相关问题
如何理解HAP、HAR、HSP三之间的关系
3496浏览 • 1回复 待解决
HarmonyOS 开发账号咨询
267浏览 • 1回复 待解决
HarmonyOS 个人开发认证不了
160浏览 • 1回复 待解决
HarmonyOS参与的问题分析
7921浏览 • 4回复 待解决