USB 键盘 - 缓冲文件
USB Keyboard - buffering files
我的小应用程序还有另一个问题。我使用 N-Audio 库和通过 USB 电缆连接到 PC 的外部 MIDI 键盘(88 键)。
一切正常,我可以在我的 MIDI 键盘上演奏,应用程序读取键并从资源中播放特定的 Notes = .wav 文件。
但问题是当我播放的时间超过 2 分钟时。在那之后,声音开始令人毛骨悚然,它们出了点问题 - 它们听起来像是出现了疯狂的压缩质量,最后它们完全消失了,但应用程序仍在接收来自 MIDI 键盘的信号。
我有 reader 这样的(对于 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();
}
找不到真正的主要问题是什么,我该如何解决。
您不应打开 WaveOut
的多个实例。相反,只需打开 1 并将所有输入与 MixingSampleProvider
混合
我的小应用程序还有另一个问题。我使用 N-Audio 库和通过 USB 电缆连接到 PC 的外部 MIDI 键盘(88 键)。
一切正常,我可以在我的 MIDI 键盘上演奏,应用程序读取键并从资源中播放特定的 Notes = .wav 文件。
但问题是当我播放的时间超过 2 分钟时。在那之后,声音开始令人毛骨悚然,它们出了点问题 - 它们听起来像是出现了疯狂的压缩质量,最后它们完全消失了,但应用程序仍在接收来自 MIDI 键盘的信号。
我有 reader 这样的(对于 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();
}
找不到真正的主要问题是什么,我该如何解决。
您不应打开 WaveOut
的多个实例。相反,只需打开 1 并将所有输入与 MixingSampleProvider