每當我嘗試調用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我非常感激!