C# NAudio-停止WaveOut播放

C# NAudio-停止WaveOut播放,c#,winforms,naudio,C#,Winforms,Naudio,我在winform项目中使用Naudio,第一个表单基本上加载它 调用另一个表单并初始化WaveOut对象,将表单句柄传递给构造函数 //in form 1 { Form2 frm2 = new Form2(); frm2.InitializeWaveOut(this.Handle); frm2.Show(); } //in form 2 public void InitializeWaveOut(IntPtr wHandle) { WaveOut wo = new W

我在winform项目中使用Naudio,第一个表单基本上加载它 调用另一个表单并初始化WaveOut对象,将表单句柄传递给构造函数

//in form 1
{
   Form2 frm2 = new Form2();
   frm2.InitializeWaveOut(this.Handle);
   frm2.Show();
} 

//in form 2
public void InitializeWaveOut(IntPtr wHandle)
{
  WaveOut wo = new WaveOut(wHandle);
  wo.DeviceNumber = 0;

  // etc...
}

Form2_Load()
{
  wo.Play();
}

一切正常,声音播放正确,但我需要能够单击一个按钮,在有限的时间内停止(暂停)音频,然后继续播放。这再次正常工作,但仅当我加载form2的一个实例时,当我加载它的第二个实例并尝试停止创建的form2的第一个实例上的音频时,它将挂起,而第二个实例将继续工作。我需要一种方法来停止窗体上的音频,而不挂起另一个,在同一设备编号上。

不要将句柄传递到WaveOut-默认构造函数将为每个实例创建单独的句柄,这样它们的消息就不会混乱