每当我尝试调用waveOut上未使用默认音频设备的.init()时,我会收到一个WaveBadFormat异常。如果我更改默认设备,我可以打开没有戏剧的波形输出。每种情况下的波形提供者都是使用ieee 44.1k 2频道波形格式的相同调音台。WaveBadFormat当调用.Init()非默认音频设备时Naudio
下面的代码在应用程序启动时调用。
MixingWaveProvider32 mixer = new MixingWaveProvider32();
WaveOut wavOut = new WaveOut();
wavOut.DesiredLatency=100;
wavOut.Init(mixer);
但是,如果用户选择了一个不同的播放装置然后将下面的代码被称为
wavOut.Stop();
wavOut.Dispose();
wavOut = new WaveOut();
wavOut.DeviceNumber = ((WaveCapabilities)comboBox2.SelectedItem).Index;
wavOut.Init(mixer);
而wavOut.Init(混合器)抛出一个坏格式异常。
检查设备的非公开成员在支持的WaveFormats中似乎没有任何区别,但我也不相信任何SupportedWaveFormat可枚举选项都匹配MixingWaveProvider32使用的32位ieee波形格式。
如果任何人有任何想法,为什么这不是默认设备的问题(不管它可能),但其他waveOut设备选项的ID我非常感激!