【问题标题】:NAudio - How to record the initial silence of the speakerNAudio - 如何记录扬声器的初始静音
【发布时间】:2020-05-19 22:55:02
【问题描述】:

我正在尝试使用 WasapiLoopbackCapture 类将扬声器录制到 WAV 文件中。 我注意到,如果扬声器最初是静音的,WAV 文件会在扬声器发出第一个声音时开始录制,例如在录制开始后 5 或 10 秒后。

有没有办法在 WAV 文件中也记录初始静音?

这是我写的代码:

WasapiLoopbackCapture _speakerWave;
protected WaveFileWriter _speakerWriter;

_speakerWave = new WasapiLoopbackCapture();

_speakerWave.DataAvailable += (s, a) =>
{
    _speakerWriter.Write(a.Buffer, 0, a.BytesRecorded);
};

_speakerWriter = new WaveFileWriter("test.wav", _speakerWave.WaveFormat);
_speakerWave.StartRecording();

谢谢

【问题讨论】:

    标签: c# naudio


    【解决方案1】:

    来自 NAudio WasapiLoopbackCapture documentation

    现在,WasapiLoopbackCapture 有一个问题。如果没有播放任何音频,则不会触发 DataAvailable 事件。因此,如果您想录制“静音”,一个简单的技巧是简单地使用 NAudio 播放设备在录制期间通过该设备播放静音。或者,您可以在检测到传入音频中的间隙时自己插入静音。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多