输入源是通过国家仪器连接的麦克风。输入信号格式为(IEEEFloat,每秒 51200 个样本,100 毫秒读取周期)并表示为数组 double[] samples
。每 100 毫秒,就会有一个来自麦克风的输入信号作为双[]。如何在 Windows 机器上使用默认声卡播放此信号。
public void Open()
{
var _format = new WaveFormatChunk
{
SamplesPerSecond = Convert.ToUInt32(51200),
BitsPerSample = 32,
Channels = 1,
FormatEncoding = WaveFormatEncoding.IeeeFloat
};
_waveOutDevice = new WaveOut
{
DesiredLatency = 100
};
_waveProvider = new BufferedWaveProvider(_format.ToWaveFormat());
_waveOutDevice.Init(WaveProvider);
}
public void Consume(double[] samples)
{
var bytes = samples.ToBytes();
_waveProvider.AddSamples(bytes, 0, bytes.Length);
}
public void Play()
{
_waveOutDevice.Play();
}
只能听到每 100 毫秒发出的某种咔嗒声(针刺声)。从麦克风中听不到任何声音或任何其他声音。这里有什么问题吗?
最佳答案
这段代码完美无缺。我的错。我的输入不正确。
关于c# - NAudio播放IEEEFloat格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26547597/