我正在使用CSCore.WasapiLoopbackCapture
来录制系统声音。但是当系统中没有声音时,它根本就没有录音!例如,在播放音乐并录制音乐时,输出文件的持续时间小于音轨的持续时间。我希望它继续录制,即使系统中没有声音,但我没有找到任何属性来控制这种行为。这是我的代码片段:
WasapiCapture waveLoop = new WasapiLoopbackCapture();
waveLoop.Initialize();
waveLoop.DataAvailable += waveLoop_DataAvailable;
waveLoop.Stopped += waveLoop_Stopped;
waveLoop.Start();
答案 0 :(得分:4)
对于您的“问题”,没有“好的”解决方案。但是你的问题已经被描述为here:
另一个奇怪的是,当存在活动流时,WASAPI将仅将数据下推到渲染端点。当什么都没有播放时,没有什么可以捕捉的。
这意味着你无法对付这种行为。如果没有播放,则不会捕获任何内容。最简单的解决方案是:
但我最喜欢处理这个问题的方法是运行silence.exe。那样的话,从来没有任何“无所事事”的故障,因为总有一些东西在玩。
因此,请确保您的应用程序或任何其他应用程序保持沉默。这将是一种确保您的应用程序记录静音而不是中断捕获的方法。