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 麦克风驱动程序来替换触发词