我正在NAudio使用
WaveOutEvent Klangwiedergabegeraet;
private void Play(string Dateiname)
{
Klangwiedergabegeraet = new WaveOutEvent();
Klangwiedergabegeraet.DeviceNumber = comboBox1.SelectedIndex;
ISampleProvider StueckchenHalter = null;
StueckchenHalter = CreateInputStreamS(Dateiname);
Klangwiedergabegeraet.Init(new SampleToWaveProvider(StueckchenHalter));
Klangwiedergabegeraet.Play();
}
private void Cancel()
{
if (Klangwiedergabegeraet != null)
{
Klangwiedergabegeraet.Stop();
Klangwiedergabegeraet.Dispose();
}
}
运行时Cancel(),它不会停止。当我使用
WaveOut Klangwiedergabegeraet;
private void Play(string Dateiname)
{
Klangwiedergabegeraet = new WaveOut();
...
}
private void Cancel()
{
if (Klangwiedergabegeraet != null)
{
Klangwiedergabegeraet.Stop();
Klangwiedergabegeraet.Dispose();
}
}
有效。为什么会这样以及要改变什么?
PS我使用WaveOutEvent而不是WaveOut因为WaveOut没有属性DeviceNumber。