Microsoft SysVAD 虚拟音频设备驱动程序 (SYSVAD) 无法工作

Posted

技术标签:

【中文标题】Microsoft SysVAD 虚拟音频设备驱动程序 (SYSVAD) 无法工作【英文标题】:Microsoft SysVAD Virtual Audio Device Driver (SYSVAD) cannot work 【发布时间】:2020-05-27 08:47:53 【问题描述】:

此驱动程序 (https://github.com/Microsoft/Windows-driver-samples/tree/master/audio/sysvad) 由 Microsoft 提供。在其自述文件的最后一部分中,它说:

在目标计算机上找到 MP3 或其他音频文件,然后 双击播放。然后在声音对话框中,验证 与 SYSVAD(带有 APO 扩展)驱动程序。

但在我的目标计算机中,与 SYSVAD(带有 APO 扩展)驱动程序关联的音量级别指示器根本没有改变。并且目标计算机不发出任何声音。

麦克风也是如此,当将默认麦克风设置为任何一个 sysvad 麦克风阵列时,麦克风音量水平根本不会改变。

在我的理解中,sysvad驱动是虚拟驱动。所以它不会真正起作用。但是为什么 Microsoft README 说:在与 SYSVAD(带有 APO 扩展)驱动程序关联的音量级别指示器中有 活动

【问题讨论】:

【参考方案1】:

SYSVAD 文档还有很多不足之处。您不会在音量指示器中看到任何活动,也不会听到任何声音,因为渲染端点所做的唯一事情就是将音频输出的副本保存到文件中(查找 C:\STREAM_HOST_*.wav 文件)。

捕获端点(包括“环回”引脚)会生成恒定的正弦波信号,如果您使用应用程序记录它们,然后在声音编辑器/查看器中查看它们或将它们回放到一个真正的设备。

【讨论】:

非常有用的评论,谢谢。我试图从我的测试笔记本电脑中“听到”一些声音,但它仍然保持沉默。不,我看到一堆 C:\STREAM_HOST_*.wav 文件。是的,文档可能会更好:-)... Richard,你知道打开/关闭 APO 组件的方法吗?我已按照页面上的说明安装了驱动程序,但我不确定声音是否通过 3 个 APO 组件中的任何一个。我如何发现这一点? @Danijel 我尝试了几次打开/关闭 APO 组件,但无法让它们工作。在我的项目中,我决定最好添加一个自定义 IOCTL 来访问音频环形缓冲区,并在正常的用户空间进程(应用程序或服务)中进行音频处理。要检查声音是否通过驱动程序的任何部分,包括 APO,我建议在 APO 组件代码中记录 WPP trace events 并查看事件是否在运行时出现。【参考方案2】:

我也在开发 SysVad 并确保它可以工作,对于 Mic,您可以使用 vlc 播放器进行测试 尝试从VLC打开虚拟麦克风,然后你会听到声音,这是驱动程序本身产生的正弦波

【讨论】:

VLC -> 媒体 -> 流 -> 捕获设备 -> 音频设备名称:任何 SYSVAD 麦克风,然后我可以听到声音。这样对吗? @格里 @Gerry 当你说它有效时,你知道你的声音是否通过任何 APO 吗?我还安装了驱动程序,但不确定 APO 是否正在运行。提前致谢。 @Danijel,抱歉回复晚了,不知道是不是经过APO,我根本没注意过apo

以上是关于Microsoft SysVAD 虚拟音频设备驱动程序 (SYSVAD) 无法工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 IOCTL 将音频数据从用户模式发送到 Sysvad(虚拟音频驱动程序)

是否可以创建一个虚拟 Windows 麦克风驱动程序来替换触发词

Mac OS X 虚拟音频驱动程序

如何在 Windows 中控制(虚拟)音频设备的输入流?

MSVAD 虚拟驱动程序丢失用于在 MS Windows 10 1703 中渲染的音频数据包

最实用的虚拟声卡-Windows安装虚拟声卡(有效解决PR音频输入,AU录音,obs多音频原控制等问题)