冒险(一切如何开始)
正如标题所述,每当我锁定屏幕(按 Windows + L 或 Ctrl + Alt + Del -> Lock)时,音频就会停止工作。好吧,部分原因是扬声器仍能正常工作,但耳机(线路输出)却不行!当 PC 从睡眠模式唤醒时不会发生同样的事情。似乎唯一导致线路输出中断的就是锁定该死的屏幕。
这是迄今为止我遇到过的最奇怪的错误。
系统
-Sager NP7338 / CLEVO W230SS
-Sound card: VIA High Definition Audio (HD Audio) 1802p
-Windows: 8.1 x64 Pro
最初我以为问题是由于驱动程序故障导致 audiodg.exe 崩溃,但经过一些测试后我注意到该过程只是重新启动并且音频服务(WindowsAudio 和 WindowsEndpointBuilder)从未停止(事实上扬声器继续工作)。
我尝试了以下驱动程序: - 10.0500d - 10.1200a - 11.0100a - 11.0300a
你有什么想法吗?我可以尝试其他驱动程序吗?只要它与我的 1802p 兼容(出于绝望,我尝试了 Realtek 驱动程序,结果出现了 BSOD)。
可能的原因是...
我的假设是,锁定屏幕会触发某些事件,导致某些关键进程崩溃。问题是我不知道这可能是哪个进程。此外,事件查看器没有提供任何有用的信息。我打算测试 Windows 7,但这很荒谬,因为这台笔记本电脑应该与 Windows 8.1 兼容(是的,它仍在保修期内,如果我找不到解决方案,我会退货)。
预先感谢您的帮助。
更新 1
我确实比较了锁定屏幕之前运行的进程列表和之后运行的进程列表。除了几个不相关的进程外,其他都一模一样。我绝望了……另外,我无法测试 Windows 7,因为我无法在 UEFI 模式下启动它(我不想擦除当前的 Windows 分区,以防我不得不向某人展示这个问题)。
还有一件事:我尝试禁用所有启动项(包括 VIA VDeck),奇迹般地问题似乎解决了。我可以锁定屏幕,耳机会继续工作,但一旦我触发睡眠模式 PUF,音频就会再次消失。我很确定这是一个软件问题。
答案1
由于这个话题已经两年多了,而且还没有提供“答案”,我很高兴收集这些要点。这是作者自己找到的答案(从问题中移到这里)。
这是我遇到过的最奇怪的事情。以下是我发现的情况:
从睡眠模式唤醒后,音频驱动程序(无论是 Microsoft 默认的“高清音频”还是 VIA 的“VIA HD Audio(Win8.1)”)本身都会停止将声音发送到线路输出
如果我还执行 CLEVO 的热键管理器 (HkeyTray.exe),音频可以通过挂起/唤醒工作,但在锁定屏幕后不起作用
现在最好的了!在热键管理器的文件夹内(在我的情况下是 C:\Program Files (x86)\Hotkey),有一个名为 InitHeadphone.exe 的小 .exe 文件。正如您所猜测的,无论您做了什么(睡眠、锁定等等),运行它都会重新启用线路输出/耳机的音频。它似乎有一些依赖项,因此必须在文件夹内运行。
真是一次冒险!我会尝试进行更多调查,了解为什么两个不同制造商(CLEVO 和 VIA)的两款软件之间存在这样的联系。这几乎就像是一种共生关系!我希望这能对某些人有所帮助。如果有帮助,请告诉我。:)
临时解决方法
如果您的耳机/线路输出在睡眠模式或锁定屏幕后无法工作,并且您有 VIA 声卡,只需下载 CLEVO 的热键管理器并运行文件 initHeadphones.exe。但我仍需弄清楚原因...
稳定的解决方案
来自 Notebook Review 论坛的 wspawn(谢谢!您仍然欢迎自己发布答案)找到了以下解决方案:
为了防止热键软件干扰音频控制/耳机,请将以下文件从 C:\Program Files (x86)\Hotkey\hp.dll 重命名为 C:\Program Files (x86)\Hotkey\hp_DISABLED.dll。
最终解决方案
显然,安装 CLEVO 的 Hotkey 实用程序(也可以在 Sager 的驱动程序页面上找到)就足够了。最新版本是 8.0100。我仍然必须找到一种方法来解决问题,而无需安装这个愚蠢的程序。
答案2
作为 Reeves 答案的补充,无需运行 Clevo 的热键程序就可以解决这个问题。
请注意,据我所知,这个问题是 Clevo 笔记本电脑独有的,但影响了其中的很大一部分。这个问题已经存在多年,这有点令人恼火,但 Clevo 似乎对他们用软件破解来修复(可能是)硬件错误感到非常满意。
在 Windows 上
我们需要做的是每次计算机从睡眠状态唤醒时运行 InitHeadphones 程序。
首先,遗憾的是,必须先安装 Clevo 的 Hotkey 程序,如 Reeves 的回答中所述,才能获取 InitHeadphones 程序。如果有更简单的方法,请纠正我!
其次,禁用热键程序自动启动。
最后,打开 Windows 的任务计划程序应用程序。将操作设置为运行 InitHeadphones.exe(默认情况下为 C:\Program Files (x86)\Hotkey\InitHeadphones.exe),并将触发器设置为:
开始任务:在某项活动中 日志:系统 来源:Power-Troubleshooter 事件 ID:1
在 Linux 上
Linux 上有一个名为 init-headphones 的项目,它提供了一个 Python 程序,可以直接与放大器对话并告诉其如何操作。
存储库链接:https://github.com/Unrud/init-headphone
该程序完全按照包装盒上的说明进行操作,设置后没有任何麻烦