windows - 允许计算机在从 Windows 应用程序播放音频时进入休眠状态

标签 windows winapi audio sleep-mode

我正在开发一个在后台播放音频的 Windows 10 应用程序。我想做的是让计算机在播放音频时仍进入休眠模式(如电源和 sleep 设置,XX 分钟后 sleep )。我的意思是停止播放音频并进入休眠状态(在 sleep 状态下不继续播放)。这甚至可能吗?在线搜索并没有什么成果,因为我几乎只能找到有关如何防止 sleep 的信息,而不是启用它。

运行 powercfg.exe/requests 显示音频播放确实阻止了 sleep :

SYSTEM:
[DRIVER] Realtek High Definition Audio (...)
An audio stream is currently in use.

我目前正在使用 IAudioClientIAudioRenderClient回放接口(interface),通过client->Start(), renderClient->GetBuffer()。如有必要,我可以切换到不同的 API。但是,无论我使用什么,都需要允许其他应用程序(VLC、YouTube、Windows 声音等)同时正常播放音频。

我的应用程序始终在我使用它的系统上运行,我只是希望系统能够在设置的系统超时时进入休眠状态。我还需要将此异常(exception)仅应用于我的应用程序 - 如果其他应用程序正在播放会阻止 sleep 的音频,则系统不应 sleep 。

是否有任何 Windows API 调用可以使 Windows 忽略我的应用程序播放音频并仍然让系统进入休眠模式?

最佳答案

你所要求的今天是不可能的。当系统进入休眠状态时,它实质上意味着系统中的处理器停止执行任何指令并关闭电源。虽然这不像是关闭系统,但已经非常接近了。所有连接到处理器的设备也会断电以节省电池/功耗。

关于windows - 允许计算机在从 Windows 应用程序播放音频时进入休眠状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53244581/

相关文章:

c++ - 有没有办法知道用户是否在控制面板中启用了 "single click to open an item"?

C# 读取字符串中的多个标签

windows - 需要一个 Windows 批处理脚本,它将远程登录到服务器并运行命令

c++ - 插入加密U盘后,如何使用WMI找到 'launcher'逻辑盘?

c++ - windows中控制台输出流的编码

asp.net - VB.NET/ASP.NET-上载MP3文件的持续时间

c - 尝试写入日志文件时权限被拒绝

c - 如何处理win32 API中的点击事件?

java - 如何编码实时音频?

android - 我如何发出通知警报声?