代码之家  ›  专栏  ›  技术社区  ›  GaussianWonder

进程之间共享音频缓冲区(窗口)

  •  -1
  • GaussianWonder  · 技术社区  · 2 年前

    我想允许VSTHosts中的反馈循环,这些反馈循环不支持反馈循环,但支持音频节点之间的自定义音频路由。FLStudio的Patcher就是这样一个例子。

    这些音频节点的工作方式是给它们一个缓冲区,然后将结果写出来。缓冲区大小由主机设置。

    我面临两个问题,处理 插件延迟 共享缓冲区 跨流程。

    我目前看待解决方案的方式是 发件人 读取传入信号并将其转发的过程,以及 接受者 从一个选定的进程中消耗 发件人 .

    由于支持自定义音频路由,该设置在给定一些可以合并2个源的音频节点的情况下实现了反馈循环。

    进程之间共享内存 已经被问了好几次了。现在,在实现和测试一些专门针对音频处理的东西之前,我正在查询与此主题相关的信息,因为我可能会朝着错误的方向看。我可能不一定需要“共享内存”,而是通过我不知道的其他一些windows api功能发送和捕获流。

    考虑到我需要这是实时的,我有哪些音频共享选项可用于windows?

    我最近偶然发现 DirectShow Filters ,不推荐使用的windows功能, Audio Video Capture Feature Source Reader 然而,我仍然不知道这是否是我需要朝着的方向前进。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Michael Chourdakis    2 年前

    在Windows中共享内存是通过 File Mapping API. 尤其 this . 您提到的其他API与进程之间共享内存(或其他任何东西)无关。

    也就是说 Core Audio API 有环回机制(我在自己的定序器和ASIO驱动程序的实现中使用它),所以这可能会对您有所帮助。

    推荐文章