1

シンプルなVSTプラグインを開発しました。プラグインには、オーディオストリームが中断された場合にクリアする必要があるオーディオサンプルを含む内部バッファがあります。

このプラグインを一部のメディアプレーヤー(VSTラッパープラグインを備えたFoobarなど)で使用し、シークバーを使用して曲のある位置にスキップしたり、新しい曲に切り替えたりしても、以前のオーディオのテールが聞こえます。

そのようなストリーム割り込みについてプラグインに通知するために呼び出されるVSTコールバックまたは何かがありますか?

4

1 に答える 1

3

通知フックは正確にはありませんが、再生が開始または停止したかどうかを確認するのは非常に簡単です。ホストはプラグインを呼び出し、suspend()トランスresume()ポートが停止および開始したときにそれぞれ呼び出す必要があります。これらの呼び出しでは、getTimeInfo()(audioeffectx.hで宣言されている)呼び出しによってプラグインに再生状態を要求できます。kVstTransportChangedとフラグを渡しkVstTransportPlayingて、プラグインがトランスポートの変更に応じて反応するようにすることができます。

ただし、一部のホストは、再生位置を変更するだけでトランスポート状態を変更しないと、いたずらで一時停止/再開しない場合があります。プロセス中に時間情報を照会するのにCPUのコストがどれほどかかるかはわかりませんが、ホストが配置内を飛び回っているかどうかを確認するために、そこで実行してみることができます。

于 2011-08-03T21:46:34.457 に答える