Win10 x64下USB-UAC虚拟声卡扬声器的实现
2021-10-13
3552
0
UsbzhVSpeaker虚拟声卡下载地址: http://www.usbzh.com/article/detail-1076.html
去年的时候,使用portclass驱动模型在windows下虚拟了一个虚拟扬声器和虚拟麦克风。扬声器和麦克风在内部通过拓扑结构进行数据关联,即麦克风的数据的来源于扬声器,实现了这样的回环。
最近突然有个需求,就是不需要麦克风,只要一个扬声器,即虚拟声卡。那怎么办呢?既然本人是专门做USB驱动开发的,在原来虚拟HID设备如虚拟键盘鼠标的代码基础上虚拟一个扬声器。
在USB规中,关于音频设备主要两种类型,输入设备为麦克风类型的即capture,输出设备为扬声器类型即render。而音频的规范类的UAC规范,本站有相关的中文文档,有兴趣的同学可以看一下。由于本人去年对UAC规范做了一个大概的总结,所以其实在做虚拟扬声器的时候,还是有一点小的胸有成竹。
废话不说,说干就干。
其实虚拟UAC设备最主要的是配置描述符的编写,其次就是USB设备的配置和简单的特定类请求的处理。
经过编写代码,编译,成生的驱动文件如下:
- USBZHSpeaker.inf
- USBZHSpeaker.cat
- USBZHSpeaker.sys
使用devcon安装驱动。由于本人在调试模式下,故会弹出如下对话框:
安装完成后,在设备管理器中显示如下:
在音频菜单中如下:
对音量进行修改:
使用该扬声器进行播放音乐:
视频演示过程:https://www.bilibili.com/video/BV1RL411G744?spm_id_from=333.999.0.0
如对本项目感兴趣的同学,可加USB中文网QQ群952873936或联系站长进行技术讨论。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936