我的小应用程序有另一个问题。我使用N-Audio库和外接MIDI键盘(88键)通过USB线连接到PC。
一切正常,我可以在我的MIDI键盘上播放,应用程序读取键并从资源中播放特定的Notes = .wav文件。
但问题是我玩的时间超过2分钟。在那段时间之后,声音令人毛骨悚然,它们出现了问题 - 它们听起来像是疯狂的压缩质量,最后它们完全消失了,但是应用程序仍然从MIDI键盘接收信号。
我有这样的读者(对于88个键中的每一个):
// WaveFileReader
private NAudio.Wave.WaveFileReader wave = null;
private NAudio.Wave.WaveFileReader wave0 = null;
并直接发声:
// DirectSoundOut
private NAudio.Wave.DirectSoundOut output = null;
private NAudio.Wave.DirectSoundOut output0 = null;
然后,所有声音(音符)都以这种方式播放(对于每个wave,wave0,wave1等......以及输出,output1,output2等等):
if (nutka == "C1" && msg.Velocity != 0)
{
wave1 = new NAudio.Wave.WaveFileReader(Properties.Resources.C1);
output1 = new NAudio.Wave.DirectSoundOut();
output1.Init(new NAudio.Wave.WaveChannel32(wave1));
output1.Play();
}
无法找出真正的主要问题是什么,以及如何解决它。
答案 0 :(得分:2)
您不应该打开WaveOut
的多个实例。相反,只需打开1并将所有输入与MixingSampleProvider