在 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 按钮,防止变暗叠加?