我成功使用WasapiLoopbackCapture()
来录制在系统上播放的音频,但我正在寻找一种方法来记录用户实际听到通过扬声器的内容。
我将解释:如果某个应用程序播放音乐,WASAPI Loopback将截取音乐样本,即使Windows主音量控制设置为0 ,这意味着:即使实际上没有通过音频听到声音 - 卡的输出插孔(扬声器/耳机/等)。
我想拦截实际上“到达”输出插孔的音频(在音频路径上的所有混音器“完成了他们的工作”之后)。
使用NAudio
(或其他基础设施)可以实现吗?
代码示例或指向此类代码的链接可以派上用场。
非常感谢。
答案 0 :(得分:0)
不,这不是直接的可能。 WASAPI提供的环回捕获是发送到音频硬件的数据流。控制实际输出声音的是硬件,这是应用音量级别来改变输出信号强度的地方。除了一些特定于硬件和驱动程序的选项 - 或一些有趣的硬件解决方案,如环回电缆或外部ADC - 没有直接的方法来获得真正的输出数据。
一种选择是从混音器获取音量级别,并将其作为缩放因子应用于从环回流接收的任何数据。这不是一个完美的解决方案,但如果没有特定的硬件支持,可能是最好的解决方案。