VST音频插件如何检测来自VST主机的流中断?

时间:2011-08-03 18:16:08

标签: plugins audio vst

我开发了一个简单的VST插件。该插件有一个带有音频样本的内部缓冲区,如果音频流被中断,应该清除它。

现在,如果我在某些媒体播放器中使用此插件(如带有VST包装插件的Foobar)并且我使用搜索栏跳到歌曲中的某个位置或者切换到新歌曲,我仍然听到之前音频的尾部

是否有任何VST回调或被调用的东西通知插件有关此类流中断?

1 个答案:

答案 0 :(得分:3)

没有确切的通知挂钩,但很容易看到播放是否已开始或停止。当传输停止和启动时,主机应分别调用您的插件suspend()resume()。在这些调用中,您可以通过调用getTimeInfo()(在audioeffectx.h中声明)来询问插件的播放状态。您可以传递kVstTransportChangedkVstTransportPlaying标记,以使您的插件对传输更改做出相应的反应。

但是,一些主机可能很顽皮,只是在改变播放位置而不是传输状态时不会暂停/恢复。我不确定在处理过程中查询时间信息的CPU成本是多少,但你可以尝试这样做,以便查看主机是否在安排中跳转。