在 OS X 上防止屏幕变暗和显示睡眠

Posted

技术标签:

【中文标题】在 OS X 上防止屏幕变暗和显示睡眠【英文标题】:Preventing screen dim and display sleep on OS X 【发布时间】:2013-04-02 02:58:38 【问题描述】:

我正在为 OS X 10.7 及更高版本制作一个播放视频的应用。任何文档都可以使用标准的全屏命令全屏显示。

只要我的应用程序中的任何文档正在播放,我想防止屏幕自动变暗并显示睡眠。

理想情况下,所有播放视频的结束(或暂停)应启动全屏睡眠计时器 - 3 分钟的显示睡眠延迟不应在最后一个视频结束后 1 分 37 秒后用完,仅仅是因为正在检查或每 3 分钟中断一次计时器。

我也不想完全禁用显示睡眠。如果我的程序崩溃或被强制退出或断电,用户的显示睡眠设置应保持不变。

确保播放不被视为“空闲”的最佳方法是什么,但一旦播放完成,空闲后的显示睡眠正常工作?

【问题讨论】:

您尝试过 AVFoundation 并发现它不适合您吗?文档不清楚。知道您是否尝试过,这将是很有价值的信息。 @FruityGeek:是的;我的播放器使用 AVFoundation。它不会抑制显示器睡眠。 【参考方案1】:

在播放过程中使用IOPMAssertionCreateWithName() 进行电源断言,并在完成后释放它。电源断言句柄unexpected process termination correctly:

应使用 IOPMAssertionRelease 释放断言。但是,即使没有正确释放,断言也会在进程退出、死亡或崩溃时自动释放。崩溃的进程不会无限期地阻止空闲睡眠。

【讨论】:

以上是关于在 OS X 上防止屏幕变暗和显示睡眠的主要内容,如果未能解决你的问题,请参考以下文章

将 os.system 的输出分配给一个变量并防止它显示在屏幕上[重复]

UIPopoverController 按钮,防止变暗叠加?

防止 iOS 应用扩展中的屏幕变暗

如何在程序执行期间防止屏幕保护程序和睡眠?

防止在 OS X 中启动时出现 iCloud 打开文件对话框 [重复]

如何在本机反应中防止屏幕睡眠