1

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

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

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

4

1 回答 1

3

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

但是,某些主机可能会很顽皮,并且在仅更改播放位置而不是传输状态时不会暂停/恢复。我不确定在处理过程中查询时间信息的 CPU 成本有多大,但您可以尝试在那里这样做,以查看主机是否在安排中跳来跳去。

于 2011-08-03T21:46:34.457 回答