该插件有一个带有音频样本的内部缓冲区,如果音频流中断,则应清除该缓冲区。
现在,如果我在一些媒体播放器中使用这个插件(比如带有VST包装器插件的Foobar ),并且我使用搜索栏跳到歌曲中的某个位置,或者我切换到一首新歌,我仍然可以听到以前音频的尾声。
是否有任何VST回调或调用来通知插件有关此类流中断的信息?
发布于 2011-08-04 05:46:34
这里没有确切的通知钩子,但很容易看到播放是否已经开始或停止。当传输停止和启动时,宿主应该分别调用你的插件的suspend()和resume()。在这些调用中,您可以通过调用getTimeInfo() (在audioeffectx.h x.h中声明)来请求插件的播放状态。您可以传递kVstTransportChanged和kVstTransportPlaying标志,让您的插件对传输更改做出相应的反应。
然而,当简单地改变播放位置而不是传输状态时,一些主机可能是顽皮的,并且不暂停/恢复。我不确定在进程中查询时间信息的CPU开销有多大,但您可以尝试这样做,以查看主机是否在安排中跳来跳去。
https://stackoverflow.com/questions/6931202
复制相似问题