首页 文章

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

提问于
浏览
1

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

现在,如果我在某些媒体播放器中使用此插件(如Foobar with VST wrapper plugin),我使用搜索栏跳到歌曲中的某个位置,或者我切换到新歌,我仍然听到以前音频的尾部 .

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

1 回答

  • 3

    当传输停止和启动时,分别没有't exactly a notification hook, but it is pretty easy to see if playback has started or stopped. The host should call your plugin' s suspend()resume() . 在这些调用中,您可以通过调用 getTimeInfo() (在audioeffectx.h中声明)来询问插件的播放状态 . 您可以传递 kVstTransportChangedkVstTransportPlaying 标志,以使您的插件对传输更改做出相应的反应 .

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

相关问题