虚拟机声卡采集没声音,通常不是声卡烧了,而是宿主音频服务、虚拟机音频控制器、客户机驱动、采集软件路由四层里至少一层没打通。 按“先出声、再录音、后路由”的顺序排查,Windows和Linux都能把问题定位到具体设置项。
先判断问题出在哪一层:虚拟机声卡采集没声音怎么办?
排查最怕东点一下西点一下,先把链路拆开:宿主机物理声卡和音频服务是否正常,虚拟机设置里声卡是否启用,客户机是否识别到声卡,采集软件是否选对输入源,四层里任意一层断开,表现都是“没声音”。
快速区分播放无声和录音无声
- 宿主机播放音乐正常,虚拟机无声:重点看虚拟机音频设备、客户机驱动、输出设备。
- 虚拟机播放正常,但OBS、录屏、会议软件录不到:重点看录音设备、立体声混音、PulseAudio监视器、虚拟声卡路由。
- 只有一边声道或断续爆音:重点看采样率、缓冲区、独占模式、CPU资源。
- 采集软件有电平但录出来是静音:重点看监听、轨道静音、编码器、输入源映射。
据微软官方文档,Windows音频服务主要包括Windows Audio和Windows Audio Endpoint Builder,服务停掉或启动类型异常,虚拟机里可能连播放设备都看不到。
Windows虚拟机音频采集设置:VMware与VirtualBox对比
VMware Workstation:声卡采集没声音怎么设置
先关虚拟机,再进“虚拟机设置”里的“声卡”,勾选“启用声卡”,连接方式优先选“使用默认主机声卡”,如果宿主有多个输出设备,可以指定实际使用的声卡,启动客户机后,检查Windows设备管理器里有没有带感叹号的音频设备。
常用操作路径:
Win + R输入mmsys.cpl,打开声音设置,确认播放和录制设备。- 在“录制”选项卡右键空白处,勾选“显示禁用的设备”和“显示已断开的设备”。
- 如果要做系统声音采集,启用“立体声混音”,没有该设备时,可尝试安装虚拟机工具或宿主声卡驱动。
- 检查
Audiosrv和AudioEndpointBuilder服务是否运行。
PowerShell命令:
Get-Service Audiosrv, AudioEndpointBuilderStart-Service AudiosrvStart-Service AudioEndpointBuilder
如果.vmx配置文件里声卡被禁用,可检查这些键:sound.present = "TRUE"、sound.autodetect = "TRUE"
、sound.startConnected = "TRUE",修改前先备份虚拟机,据VMware官方知识库,虚拟机声卡可设置为默认主机声卡或指定声卡,部分专业采集场景需要绕开默认设备。
VirtualBox:Linux/Win客户机声卡无声音解决
VirtualBox的设置路径是“设置 > 音频”,勾选“启用音频”,宿主音频驱动在Windows下可选WASAPI或DirectSound,Linux下可选ALSA或PulseAudio,音频控制器可选ICH AC97、Intel HD Audio或SoundBlaster,现代客户机优先Intel HD Audio,老系统再考虑AC97。
常见排查点:
- 安装Guest Additions,更新客户机音频驱动。
- 确认虚拟机没有独占宿主机声卡,宿主机正在播放时,VirtualBox可能抢不到设备。
- Linux客户机执行
aplay -l看播放设备,arecord -l看录音设备。 - 执行
alsamixer,按M取消静音,把音量推上去。 - 执行
speaker-test -c 2 -t wav测试播放。 - 执行
arecord -d 5 -f cd test.wav,再aplay test.wav测试录音。
免费与低成本虚拟机声卡采集方案
预算有限时,不一定买专业声卡,Windows客户机可用VB-CABLE这类虚拟音频线,免费版就能把系统声音路由给OBS,Linux客户机可用snd-aloop或module-null-sink创建虚拟采集源,远程桌面场景下,RDP音频重定向适合播放,但录音采集往往不够稳定。
Linux加载回环声卡:
sudo modprobe snd-alooparecord -D hw:Loopback,0 -f cd test.wavaplay -D hw:Loopback,1 test.wav
创建空接收器:
pactl load-module module-null-sink sink_name=VirtualSinkpactl list short sources
然后在OBS里选择Monitor of VirtualSink作为输入源,这套免费方案适合录屏、直播、会议备份,成本低,但延迟和稳定性取决于CPU与缓冲设置。
Linux系统音频问题:Linux虚拟机声卡采集无声音解决
ALSA、PulseAudio与PipeWire怎么查
Linux音频栈比Windows多一层,底层是ALSA,中间常见PulseAudio或PipeWire,排查顺序是:内核识别声卡,ALSA看到设备,PulseAudio/PipeWire暴露源和输出,应用选对源。
常用命令:
lspci | grep -i audiolsmod | grep snddmesg | grep -i sndaplay -larecord -lpactl infopactl list short sourceswpctl status
如果arecord -l没有录音设备,先查虚拟机音频控制器和驱动,如果ALSA有设备但应用看不到,查PulseAudio或PipeWire,用pavucontrol打开音量控制,在“录制”选项卡里让应用显示所有流,手动切到正确的监视器源,行业共识认为,采样率不一致是爆音和无声的常见诱因,宿主机、客户机、采集软件尽量统一为48kHz。
权限与用户组
当前用户不在audio组时,可能无法访问录音设备,执行:
groupssudo usermod -aG audio,video $USER
重新登录后生效,PipeWire用户服务异常时,可检查:
systemctl --user status pipewiresystemctl --user status pipewire-pulsesystemctl --user restart pipewire pipewire-pulse
内核模块与虚拟声卡
VirtualBox常用snd_hda_intel或snd_ac97_codec,VMware客户机也常见snd_hda_intel,如果模块没加载,执行sudo modprobe snd_hda_intel,若要做系统声音采集,没有监视器源时,加载snd-aloop或创建null-sink,业内专家指出,虚拟化层对声卡的模拟优先保证兼容性,而非低延迟专业录音,所以采集链路越短越稳。
采集软件侧排查:OBS、录屏、会议软件
OBS输入源与监听
Windows下,OBS添加“音频输入采集”选麦克风,添加“音频输出采集”选桌面音频,如果虚拟机内播放正常但OBS没电平,检查OBS音频设置里的采样率、声道、监听设备,Linux下,OBS选PulseAudio输入采集,设备选Monitor of ...,如果只有麦克风源,就录不到系统声音。
检查清单:
- 轨道是否静音。
- 监听是否关闭。
- 输入源是否被滤镜压低。
- 会议软件是否选了错误麦克风。
- 浏览器是否被系统隐私设置禁止录音。
会议与录屏场景
腾讯会议、Zoom、Teams在虚拟机里使用时,先确认客户机录音设备正常,会议软件里选“立体声混音”或虚拟声卡作为麦克风,录屏软件同理,若宿主和客户机同时开采集,容易争抢声卡,建议只保留一条采集链路。
高频故障速查表
| 现象 | Windows排查 | Linux排查 |
|---|---|---|
| 播放无声 | 声卡启用、Audiosrv服务、默认输出设备 | aplay -l、alsamixer、PipeWire状态 |
| 录音无声 | 显示禁用设备、启用立体声混音 | arecord -l、pactl list short sources |
| OBS有电平但静音 | 轨道静音、监听、编码器 | 监视器源、轨道、PipeWire路由 |
| 爆音断续 | 关闭独占模式、统一48kHz | 增大缓冲、统一采样率 |
| 只有单声道 | 声道平衡、采集源单声道 | alsamixer声道、PulseAudio配置 |
预防与优化:让虚拟机音频采集更稳定
- 宿主机、客户机、采集软件统一采样率,常用44.1kHz或48kHz。
- 关闭音频增强、独占模式、空间音效。
- 给虚拟机分配足够CPU核心,避免音频线程被抢。
- 虚拟机磁盘放SSD,减少I/O卡顿。
- 定期更新VMware Tools或VirtualBox Guest Additions。
- 修改
.vmx或.vbox前先备份。 - Linux下优先PipeWire,减少PulseAudio兼容层问题。
- Windows下避免同时装多个虚拟声卡驱动。
据统计,相当一部分虚拟机音频问题来自默认设备选错和采样率不匹配,按链路排查,比反复重装系统更快。
Q&A:虚拟机声卡采集没声音怎么办?
为什么VMware虚拟机里OBS采集不到系统声音?
VMware虚拟声卡默认把客户机声音送到宿主机输出,客户机内部不一定暴露“立体声混音”,在Windows客户机中打开mmsys.cpl,在录制选项卡显示禁用设备,启用立体声混音,再在OBS里添加音频输出采集,Linux客户机则用PulseAudio监视器源或snd-aloop。
Linux虚拟机声卡采集无声音,是不是必须装虚拟声卡驱动?
不一定,先确认虚拟机设置里音频控制器已启用,客户机加载了snd_hda_intel或snd_ac97_codec。aplay -l能看到设备,alsamixer没有静音,再用pactl list short sources找监视器源,没有监视器源时,加载snd-aloop或创建null-sink作为虚拟采集通道即可。
虚拟机声卡采集延迟高、爆音,和硬件性能有关吗?
有关,但多数情况下是缓冲和采样率不匹配,把宿主机、客户机、OBS统一为48kHz,缓冲区设128到512样本,关闭独占模式,分配足够CPU核心,Linux下PipeWire可降低部分延迟,Windows下避免多个音频增强同时开启。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/763971.html





