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

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

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

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

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

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

【问题讨论】:

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

标签: macos cocoa power-management iokit


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多