NAudio wavein NumberOfBuffers设置的目的是什么?

约翰·赖希特

我有一个非常简单的应用程序,它可以监视计算机声卡,以检测声卡上连接的外部设备产生的信号。我正在使用NAudio与声卡进行交互:

  wavein = New NAudio.Wave.WaveIn
  wavein.DeviceNumber = _deviceId
  wavein.WaveFormat = New NAudio.Wave.WaveFormat(44100, 1)
  wavein.BufferMilliseconds = 250
  AddHandler wavein.DataAvailable, AddressOf onDataAvailable
  wavein.StartRecording()

我注意到可以调整wavein对象使用的缓冲区数,例如:

  wavein.NumberOfBuffers = 5

我相信默认的NumberOfBuffers设置是3。有什么理由会想要更改缓冲区的数量吗?如果不是针对我的特定应用程序,那么针对另一种类型的应用程序?

马克·希思

缓冲区依次循环,因此如果您有3个缓冲区,它将填充一个缓冲区并返回它,然后填充下一个缓冲区,然后填充下一个缓冲区,然后返回第一个缓冲区。通常2绰绰有余。最主要的是,您的应用在waveIn开始再次覆盖其顶部之前,已完成了对该缓冲区中音频的处理。

此属性可配置且默认为3的原因是,当我在2002年开始创建NAudio时,我的计算机没有足够的功能来播放音频而不会出现卡顿现象,除非我至少使用了3个缓冲区(如果我使用400MHz Pentium III,正确记得)。如今,CPU的速度如此之快,以至于您不太可能会遇到问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用NAudio在MIDI文件中设置MIDI速度

来自分类Dev

NAudio Asio录制和播放

来自分类Dev

NAudio播放IEEEFloat格式

来自分类Dev

NAudio,Windows服务,多线程

来自分类Dev

Azure网站上的NAudio转换

来自分类Dev

使用NAudio暂停录音

来自分类Dev

NAudio和Xamarin Android

来自分类Dev

在NAudio中设置播放开始/结束点

来自分类Dev

NAudio.Midi延迟与MidiIn

来自分类Dev

signingKey和encryptionKey设置的目的是什么

来自分类Dev

NAudio获取音频样本

来自分类Dev

NAudio流读取方法延迟

来自分类Dev

设置私钥后设置公钥的目的是什么?

来自分类Dev

WASAPI事件驱动的捕获naudio

来自分类Dev

NAudio,录制多行

来自分类Dev

使用Naudio停止WAV文件

来自分类Dev

与NAudio混合波流

来自分类Dev

NAudio对象引用未设置为对象的实例

来自分类Dev

在这里设置的目的是什么?

来自分类Dev

NAudio wavein NumberOfBuffers设置的目的是什么?

来自分类Dev

NAudio播放IEEEFloat格式

来自分类Dev

NAudio文件转换

来自分类Dev

当游戏中的CPU使用率达到峰值时,为什么我的NAudio音乐会冻结?

来自分类Dev

Azure网站上的NAudio转换

来自分类Dev

使用NAudio暂停录音

来自分类Dev

signingKey和encryptionKey设置的目的是什么

来自分类Dev

NAudio获取音频样本

来自分类Dev

什么是MixingSampleProvider NAudio的父层次结构

来自分类Dev

为什么 NAudio 创建的 WAV 文件是它应该大小的两倍?