NAudio -停止WaveOut播放

本文关键字:播放 WaveOut 停止 NAudio | 更新日期: 2023-09-27 18:11:14

我使用Naudio为一个winform项目,当第一个表单加载它基本上调用另一个表单并初始化一个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的实例,它挂起,而第二个保持功能。我需要一种方法来停止音频的形式,而不挂另一个,在相同的设备编号。

NAudio -停止WaveOut播放

不要将句柄传递给WaveOut -默认构造函数将为每个实例创建一个单独的句柄,因此它们的消息不会混淆