跳到正文
本页内容

状态与生命周期

正确恢复宿主工程,并响应音频处理生命周期的变化。

状态所有权

VST3 组件保存处理器状态,控制器同步宿主可见的参数和 UI 状态。序列化数据必须带版本且结果确定;不要保存临时 DSP 缓冲区或 WebView 对象。

音频内核生命周期

钩子用途
prepare采样率设置和预分配
reset处理配置变化后清理算法历史
suspend宿主停止处理时暂停算法的后台状态
resume宿主重新开始处理时恢复

setupProcessing() 和激活状态的变化会触发重置;setProcessing(false/true) 分别对应暂停和恢复。

Web UI 状态

Bridge 快照分别记录参数、配置和 UI 的修订号。配置与 UI 状态更新采用乐观并发检查;使用旧修订号的编辑器会收到状态冲突错误,而不会覆盖更新后的数据。

TypeScript
const snapshot = await bridge.getSnapshot();await bridge.setUiState({ expectedRevision: snapshot.uiRevision, value: { selectedTab: 'meters' }});

UI 状态只是可选的表现层数据。即使编辑器从未打开,插件也必须产生正确的音频输出。

测试完整序列

测试应覆盖保存、销毁、恢复、激活、准备、处理、暂停、恢复,以及编辑器的重新打开和重新加载。不同 DAW 的调用顺序可能不同,因此单元测试不应只接受某一种宿主调用序列。