【问题标题】:How can an Audio Unit detect start and stop of its host?音频单元如何检测其主机的启动和停止?
【发布时间】:2011-04-22 18:09:13
【问题描述】:

音频单元组件如何检测音频单元主机的启动和停止?

在组件的 Kernel Process() 中,我尝试了 CallHostTransportState(...) 方法,该方法返回主机是否正在播放,因此我可以检测到第一次启动;但是当主机停止时不再调用 Process(),所以我无法以这种方式检测到停止。并且由于未检测到停止,因此无法检测到下一次启动,因为未检测到“已停止”状态。

有什么想法吗?

谢谢。

【问题讨论】:

    标签: core-audio transport audiounit


    【解决方案1】:

    好吧,您似乎没有可以收听有关主机传输状态更改的特定属性,这意味着您需要自己监视它们。在我的脑海中,最简单的方法是创建一个新的运行循环(即使用CFRunLoopNSRunLoop,具体取决于您是否在 C++/Obj-C 层)并将其传递给引用到一个空闲函数,该函数又会将主机传输的状态传递给您的插件。

    在 VST 世界中,这通常可以通过覆盖 idle() 来完成,但由于 AudioUnits 是面向拉取而不是面向推送的,因此您有时需要手动拉取信息并将其推送到您的插件.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 2011-03-02
      • 2023-03-13
      相关资源
      最近更新 更多