如何阻止MPMusicPlayerController启用屏幕锁定

tdd*_*key 9 iphone mpmusicplayercontroller

我有一个应用程序需要iPhone屏幕保持活动(或不,取决于用户选择).我已经通过禁用应用程序空闲计时器来完成此操作,该计时器正常工作,直到我开始通过MPMusicPlayerController播放媒体.由于SDK中的错误,然后重新启用空闲计时器,没有明显的方法再次禁用它.

我的应用流程是:

  1. 应用程序启动
  2. 屏幕保持不变
  3. <...时间过去了...>
  4. 播放音频文件
  5. 空闲计时器开始了
  6. 屏幕关闭

我在后台播放一个空的音频文件以阻止手机进入深度睡眠状态,但我真的想让屏幕保持解锁状态.

有没有人设法找到解决方法?

hen*_*g77 5

我有一个类似的问题,并找到了解决方案.该修复程序也可能对您有用:

我定期调用一个方法(每10秒),它首先将idleTimerDisabled设置为NO,然后设置为YES.

- (void)calledEveryTenSeconds
{
    [UIApplication sharedApplication].idleTimerDisabled = NO;
    [UIApplication sharedApplication].idleTimerDisabled = YES;
}
Run Code Online (Sandbox Code Playgroud)

仅设置为YES不能解决问题.看来该物业必须先改变才能被UIApplication认可.

我的问题是,一旦我通过耳机遥控器切换iPod播放器上的音乐曲目,屏幕就会变暗.我的猜测是,这与您遇到的问题相同.


Ste*_*ntz 1

您只需关闭空闲计时器即可。我通常在需要保持“清醒”的视图控制器中执行的操作是:

- (void) viewWillAppear:(BOOL)animated
{
    [[UIApplication sharedApplication] setIdleTimerDisabled: YES];
}

- (void) viewWillDisappear: (BOOL) animated
{
    [[UIApplication sharedApplication] setIdleTimerDisabled: NO];
}
Run Code Online (Sandbox Code Playgroud)

这将确保屏幕不会由于用户不活动而被锁定。