2

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

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

任何想法?

谢谢。

4

1 回答 1

1

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

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

于 2010-10-08T10:07:38.300 回答