视频一直有声音,微信和系统弹窗的提示音却经常听不见。刚开始排查时,根本没往音频设备上想。直到发现视频放着时提示音能响,暂停一会儿就听不见了,才开始查音频设备的空闲设置。最后改了一个 NVIDIA 音频参数,声音恢复了;改回原值,故障也回来了。下面记录的是这台机器上有效的临时办法,尚未经过整机重启验证。


视频暂停一会儿,提示音就没了

声音走的是 NVIDIA 显卡 → DisplayPort → 显示器内置扬声器。浏览器里的视频能正常播放,偏偏微信来消息、安装软件弹出系统提示时,声音时有时无。

Windows 音频服务、提示音文件、系统声音的音量都查过,没有发现异常。甚至在耳朵听不到声音时,软件侧还能读到音频峰值。只看这些状态,很容易觉得声音已经正常输出了。

排查中也出现过几次“突然好了”,但过一会儿又没声。后来把输出设备和音量固定下来,用同一个系统提示音试了两次:视频保持有声播放时,能听到;暂停视频,等约 30 秒,再播提示音,完全听不到。这里没有按静音按钮,只是停止了音频播放。系统和应用的音量都没变。

这时才有了一个比较具体的猜测:音频设备会不会在没声音的时候进入省电状态,等下一段声音来了才恢复?如果开头被耽误掉,长视频后面还能照常播放,短提示音却可能已经结束了。

从 4 改到 0,声音回来了

查 NVIDIA 音频设备的注册表时,找到了 PowerSettings 下面的三个参数:

参数 当时的 REG_BINARY 数据 作用
PerformanceIdleTime 04 00 00 00 接电状态下的空闲超时,4 秒
ConservationIdleTime 04 00 00 00 电池供电状态下的空闲超时,4 秒
IdlePowerState 03 00 00 00 空闲后进入 D3 电源状态

微软的 PortCls 文档PerformanceIdleTime 设为 0 就会禁用接电状态下的空闲管理。4 秒是配置里的超时时间,实际什么时候进入省电状态,这次没有测量。

因为测试时一直接着电,我只把 PerformanceIdleTime 改为 00 00 00 00,其余两个值没动。重新加载 NVIDIA 音频设备,停止播放,等约 30 秒,再试提示音——这次听完整了。等到约 2 分钟再试,也有声音。

但这还不够,修改参数和重新加载设备是一起做的,也可能只是后者让声音暂时恢复。

所以我又把值恢复成 4,再走一遍相同的测试。结果完全无声。接着改回 0,同样重新加载设备、等待、播放,声音又回来了。

整个过程用的是同一个系统声音文件:

C:\Windows\Media\Windows User Account Control.wav
操作 PerformanceIdleTime 停止音频播放后等待 听到的结果
修改前 4 约 30 秒 完全无声
改为 0,重新加载设备 0 约 30 秒 完整有声
再延长等待 0 约 2 分钟 有声
恢复为 4,重新加载设备 4 约 30 秒 完全无声
再改为 0,重新加载设备 0 约 30 秒 完整有声,第一声稍小

恢复原值的这一步,让我有理由保留这个修改。至于恢复慢的是驱动、DP 链路,还是显示器内部,单靠听音和这个参数还分不出来。

NVIDIA 其实已经写过这个问题

NVIDIA 的支持文章在 2023 年就描述过类似情况:音频设备空闲后重新播放,开头的声音可能被截掉。官方给出的临时办法也是改这几个电源参数,不过它把三个值都设成了 0。我这里只改接电空闲超时就有效,没有继续改另外两个。

还有一篇社区帖子,描述几乎和这次一样:通过 HDMI/DP 向显示器输出,前 2~3 秒没声音,后面正常,短通知音则根本听不见。评论里改参数后有人有效、有人无效,看来不能直接套用到所有设备。

另一位用户在 Super User 记录了 NVIDIA 音频从 D0 切到 D3,恢复播放时丢失前 1~2 秒。他修改了两个参数,禁用再启用设备后,设备空闲时保持 D0;他的情况还伴随爆音,与这里不完全相同。

这些资料在 2026 年 9 月 12 日复核过。它们能解释为什么要往空闲电源管理这个方向查,却回答不了我最初的另一个疑问:以前一直正常,为什么最近才出现?没有更新前后的对照,目前不能归到某次 Windows 或 NVIDIA 更新头上。

同样的现象,可以怎样试

下面的步骤在 Windows 11 25H2、NVIDIA High Definition Audio 1.4.6.3 上做过。先确认声音确实经过 NVIDIA 显示音频输出,并试试“视频播放时提示音能响,停止播放一段时间后却不响”。如果长音频也全程无声,或者只有某个应用关闭了通知声音,应先查对应的问题。

先找到设备,备份原值。 用注册表编辑器打开:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}

在编号子项中找到 DriverDescNVIDIA High Definition Audio 的项,打开它的 PowerSettings,导出这个分支,并记录原始数据。

不同机器的编号不一样。如果有多个匹配项,用设备管理器里该音频设备的“驱动程序项”属性确认对应关系,不要批量改。找不到参数时也先停下来,不要套用其他声卡的路径。

然后只改 PerformanceIdleTime 以管理员权限,把现有的二进制数据改为:

00 00 00 00

注意类型是 REG_BINARY,不要新建成 DWORD。ConservationIdleTimeIdlePowerState 保留原值。

让音频设备重新读取配置。 在设备管理器的“声音、视频和游戏控制器”中找到对应的 NVIDIA 音频设备,从“属性 → 详细信息”复制“设备实例路径”,替换下面的占位符,在管理员 PowerShell 中执行:

# 对应音频输出会短暂中断;目标是音频设备,不是显示适配器。
pnputil.exe /restart-device "<NVIDIA 音频设备实例路径>"

我这次只重新加载了音频设备,没有重启电脑。确认命令成功、默认输出仍是原来的显示器后,暂停或停止所有音频播放,保持音量不变且不静音,等待约 30 秒,再播放同一个提示音。之后可以延长等待时间再试。

如果无效,恢复备份的原值,再重新加载同一设备。 我这里原来是 04 00 00 00,其他机器以自己的备份为准。

现在先保留这个改动

目前 PerformanceIdleTime 保持为 0。它只涉及 NVIDIA 音频设备的空闲管理,不会因此让整张显卡一直高负载运行。音频链路的空闲功耗可能增加,具体增加多少没有测过;这次先选择让提示音正常响起来。

最后一次测试的声音完整,但第一声稍小。最长一次等待约 2 分钟,整机重启、睡眠唤醒,以及真实微信通知的长期稳定性还没测,所以现在还不能说已经彻底解决。NVIDIA 也提醒,更新驱动会重置这些参数;以后相同症状再出现,可以先检查这个值。

回头看,最耽误判断的恰好是“视频一直有声音”。它让我忽略了声音刚开始播放的那一小段,而提示音可能就只有那么长。