【发布时间】:2018-03-26 14:53:01
【问题描述】:
我最近基于 VLCKit 构建了一个简单的 Swift macOS 应用程序;其目的主要是通过 RTSP 在屏幕上始终可见的窗口中播放 IP 摄像机流(即监控门)。
鉴于应用程序的用途,我一直在播放流媒体,除非用户在 Dock 中将其最小化(这意味着我只在 viewDidDisappear 中调用 mediaPlayer?.stop)。
该应用运行良好,但我最近发现,除非它被最小化(因此,播放已经停止),否则屏幕保护程序会阻止运行。
我已经尝试订阅所有 NSNotificationCenter com.apple.screensaver.* 通知,并且我意识到当播放运行时,它们都不会被触发; 如果我最小化应用程序并停止播放,一切都会正常运行(屏幕保护程序在常规延迟后启动,所有 com.apple.screensaver 通知都会被正确检测到)。
我也尝试过运行 pmset -g 来检查我的应用是否被列为阻止睡眠,但事实并非如此。
我的印象是,我的 VLCMediaPlayer 实例默认情况下会阻止屏幕保护程序启动。
我知道在 VLC Mac 应用程序中可以通过高级设置手动阻止屏幕保护程序,但我似乎无法在我的代码中找到要设置的参数来告诉 VLCKit 停止阻止屏幕保护程序。
据您所知,默认情况下 VLCKit 会阻止屏幕保护程序运行?有没有办法改变这种行为?
如果您需要任何进一步的细节,请告诉我...提前致谢!
【问题讨论】:
标签: macos cocoa vlc libvlc nsnotifications