问题描述
我的Win10笔记本在播放视频的时候经常有爆音的问题。在看视频的时候,暂停视频播放一段时间之后,如果再继续播放,就会出现爆音的情况。这个是很烦人的,已经好几年了,为此我还装了很多次这个Realtek板载声卡的驱动,但是也没有找到解决方法。就这么将就着用。但是偶然在网上发现了一篇知乎帖子,这篇帖子为引子,让我找到了最终的解决方法。
原因分析:
- 这篇知乎文章(https://zhuanlan.zhihu.com/p/12331051293)中,给出了ArchWiki(https://wiki.archlinux.org/title/QEMU#High_interrupt_latency_and_microstuttering)中对系统卡顿的原因归纳:
High interrupt latency and microstuttering
This problem manifests itself as small pauses (stutters) and is particularly noticeable in graphics-intensive applications, such as games.
• One of the causes isCPU power saving
features, which are controlled byCPU frequency scaling
. Change this to performance for all processor cores.
• Another possible cause isPS/2
inputs. Switch fromPS/2
toVirtio
inputs, seePCI passthrough via OVMF#Passing keyboard/mouse via Evdev
.
我觉得应该其中第一条应该是我解决问题的方向。那么就看看怎么关闭CPU的节能功能。
2. 但是搜索了一圈之后发现这样一篇帖子(https://h30434.www3.hp.com/t5/Unanswered-Topics-Notebook/How-to-permanently-disable-audio-power-saving-mode/td-p/7977841),里面提到:
Whenever I start playing any audio after more than 30 seconds of silence, the first few seconds are cut off. I’ve managed to trace this back to the Realtek HD Audio driver, which goes into a “
Power Saving mode
” when inactive. I can fix the problem inRegEdit
, but HP software updates keep on resetting it to the original behaviour. Is there any way to permanently disable this feature?
原来声卡在暂停工作一段时间之后会进入节能模式?可以通过Windows注册表编辑器来关闭这个节能模式?我好像已经找到了问题的解决思路。
解决方案:
继续搜索之后找到这样一篇帖子(https://www.tenforums.com/sound-audio/12589-windows-10-popping-sound-speakers-4.html),一个用户给出了最终的解决方法:
Here’s something else to try if none of the fixes in this thread work for you. I had an issue where I heard frequent popping from my speakers (via hdmi). Audio Device Class Inactivity Timer Implementation - Microsoft Doc
Essentially, this doc from Microsoft explains the gist of where the issue lay for me. For some reason, all audio drivers in Windows 10 are set to very aggressively conserve power by changing their power state when not in use. There is a timer involved, which tracks the time from an audio device’s last use. The fix is to disable this timer. This is done via regedit.
Go to
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
and right click on “Class
” > Find > search for the term “PerformanceIdleTime
” - in my case the first match related to myNvidia Audio driver
, the second related to myRealtek Audio driver
. You want to set these to “00 00 00 00
” which sets thepower conservation setting
to D0, or “full power” (more details in the Microsoft doc linked above.). You might need to reboot for this setting to come into effect, but in my case I saw immediate benefit - my speakers stopped popping as a result of their power state not being altered any more. Good luck!
按照这个方法,视频播放总是爆音问题总算完美解决。困扰我多年的问题终于有了答案。Windows10的所有声卡驱动都被设置成了非常激进的节能模式。在声卡暂停工作之后会启动一个计时器,时间到了之后声卡就会进入idle状态,那么再次启动声卡的时候就会有一个从idle状态转换到工作状态的过程,造成视频播放中的爆音现象。
评论记录:
回复评论: