我在一个winform项目中使用n音频,当第一个表单加载时,它基本上会调用另一个表单并初始化一个将表单句柄传递给构造函数的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的一个实例,当我加载它的第二个实例并试图停止first created实例form2上的音频时,它会挂起,而第二个实例将继续工作。我需要一种方法来停止在一个表格上的音频,而不挂另一个,在相同的设备编号。
发布于 2014-07-04 08:22:24
不要将句柄传递给WaveOut -默认构造函数将为每个实例创建一个单独的句柄,这样它们的消息就不会被混淆。
https://stackoverflow.com/questions/24554568
复制相似问题