c# - NAudio播放IEEEFloat格式

标签 c# .net audio microphone naudio

输入源是通过国家仪器连接的麦克风。输入信号格式为(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/

相关文章:

c# - 一个 child 实现接口(interface)而另一个 child 不实现接口(interface)是否违反了里氏替换原则?

c# - 在没有 UI 的情况下使用 Office 365 REST API

python - 用django控制python程序

C# MySQL 错误 System.Data.SqlClient.SqlException :

c# - 从后台代码启动 OpenOffice 作为服务不起作用

c# - 如何将 DistinctRootEntityResultTransformer 应用于 NHibernate 中的所有查询

.net - .NET for Universal Windows 程序是 .NET Core 的子集吗?

.net - 访问 Form 上的成员可能会导致运行时异常,因为它是 marshal-by-reference 类的字段

javascript - 将以编程方式生成的音频流传输到浏览器

iphone - 在iOS模拟器上播放声音,但在已发布的应用程序上不播放