静音时 CSCore 环回录音

Sep*_*hrM 2 c# audio-recording cscore

CSCore.WasapiLoopbackCapture用来录制系统声音。但是当系统没有声音时,它根本不录音!例如,在播放音乐和录制音乐时,输出文件的持续时间小于曲目的持续时间。我希望它即使在系统中没有声音的情况下也能继续录制,但我没有找到任何属性来控制这种行为。这是我的代码片段:

WasapiCapture waveLoop = new WasapiLoopbackCapture();
waveLoop.Initialize();
waveLoop.DataAvailable += waveLoop_DataAvailable;
waveLoop.Stopped += waveLoop_Stopped;
waveLoop.Start();
Run Code Online (Sandbox Code Playgroud)

Flo*_*ian 5

您的“问题”没有“好的”解决方案。但是您的问题已经在这里描述:

另一个奇怪的是 WASAPI 只会在有活动流时将数据向下推送到渲染端点。当什么都没有播放时,就没有什么可捕捉的。

这意味着您对这种行为无能为力。如果没有任何播放,则不会捕获任何内容。最简单的解决方案是:

但我特别喜欢的处理方式是运行silence.exe。这样就不会出现任何“什么都没有播放”的故障,因为总是有东西在播放。

所以只需确保您的应用程序或任何其他应用程序静音。这将是一种确保您的应用程序记录静音而不是中断捕获的方法。