使用VST.NET C#的NullReferenceException

时间:2014-06-01 14:16:40

标签: c# .net nullreferenceexception vst

我已经实施了 VST主机,允许您通过加载.dll文件来使用任何VST效果。

运行时删除插件时遇到问题:当我按下播放'按钮我的 ASIO回调函数检查是否有活动插件,如果有,它会触发一个转换样本并将它们传递给插件的函数,以便它们处理它。

在执行语句plugin.processReplacing()之前,它检查插件是不是null,但是它就好像忽略了这个控件

当我按下' 停止'或' 删除效果'按钮程序关闭插件并将其设置为null,因此此时不应执行语句plugin.processReplacing()而是有时会处理它并给我错误NullReferenceException

也许我必须等待插件在关闭插件之前最后一次执行指令processReplacing(),但我不知道该怎么做。

有一些代码:

删除插件程序:

public void rimuoviPlugin()
    {
        if (vstForm != null) vstForm.Close();
        if (processor.plugin == null) return;
        //Spengo i plugin
        processor.plugin.EditorClose();
        processor.plugin.StopProcess();
        processor.plugin.MainsChanged(false);
        processor.plugin.Close();

        processor.plugin = null;
    }

processSample程序:

if (plugin != null)
        {
            plugin.ProcessReplacing(vstBufIn, vstBufOut);
            plugin.EditorIdle();
        }

有没有人有任何想法来解决这个问题? (如果您需要其他代码,请问我)

谢谢。

0 个答案:

没有答案