【发布时间】:2014-10-24 12:10:19
【问题描述】:
输入源是通过国家仪器连接的麦克风。输入信号格式为(IEEEFloat,每秒 51200 个样本,100ms 读取周期)并表示为数组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# .net audio microphone naudio