我有一个应用程序要求iPhone屏幕保持活动状态(或不支持,具体取决于用户选择)。我已经通过禁用应用程序空闲计时器来完成此操作,该计时器正常工作,直到我开始通过MPMusicPlayerController播放媒体。由于SDK中的错误,然后重新启用空闲计时器,没有明显的方法再次禁用它。
我的应用流程是:
我在后台播放一个空的音频文件以阻止手机深度睡眠,但我真的想保持屏幕解锁。
有没有人设法找到解决方法?
答案 0 :(得分:5)
答案 1 :(得分:1)
我找到了解决这个问题的方法。在开始播放音乐后约5秒钟内调用禁用idleTimer的方法。这有点像黑客,但它是一种解决方法。
[[SoundEngine mainEngine] playMusic];
[self performSelector:@selector(setIdleTimeDisabled) withObject:nil afterDelay:5.0];
- (void) setIdleTimeDisabled {
[UIApplication sharedApplication].idleTimerDisabled = YES;
NSLog(@"Setting idleTimer to TRUE");}
答案 2 :(得分:0)
您应该只是关闭空闲计时器。我通常在需要保持“清醒”的viewcontroller中做的是:
- (void) viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
}
- (void) viewWillDisappear: (BOOL) animated
{
[[UIApplication sharedApplication] setIdleTimerDisabled: NO];
}
这将确保屏幕不会因用户不活动而被锁定。
答案 3 :(得分:0)
let player = MPMusicPlayerController.applicationMusicPlayer()
player.setQueueWithStoreIDs(["some id"])
player.play()
player.pause()