2010-02-08 1 views
9

iPhone 화면을 활성 상태로 유지해야하는 응용 프로그램이 있습니다 (사용자 선택에 따라 다름). MPMusicPlayerController를 통해 미디어 재생을 시작할 때까지 응용 프로그램 유휴 타이머를 비활성화하여이 작업을 완료했습니다. SDK의 버그로 인해 유휴 타이머를 다시 사용 가능하게 설정하지 않고 유휴 타이머를 다시 활성화합니다.MPMusicPlayerController에서 화면 잠금을 사용 중지하는 방법

내 애플 흐름은 다음과 같습니다

  1. 앱은
  2. 화면
  3. <
  4. 에 남아 시작 ... 시간이지나 ...
  5. > 오디오 파일을 재생
  6. 유휴 타이머 차기
  7. 화면 꺼짐

나는 깊은 잠에 들어가는 전화를 멈추기 위해 백그라운드에서 재생되는 빈 오디오 파일을 가지고 있지만, 화면 잠금을 유지하고 싶습니다.

누구든지이 문제를 해결할 수 있었습니까?

+0

'idleTimerDisabled'를'YES '로 설정 했습니까? – kennytm

+0

예. idleTimerDisabled는 MPMusicPlayerController가 실행될 때 NO로 재설정되며 다시 비활성화 할 수 없습니다. – tddmonkey

+0

이 문제가 있어도 행운입니까? 모든 해결책을 시도했지만 그들 중 누구도 일하지 않았습니다. –

답변

0

유휴 타이머를 해제해야합니다.

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

- (void) viewWillDisappear: (BOOL) animated 
{ 
    [[UIApplication sharedApplication] setIdleTimerDisabled: NO]; 
} 

이 화면은 사용자 비 활동으로 인해 고정되지 않습니다 있는지 확인합니다 : 내가 일반적으로 '깨어'있을 필요가의 ViewController에서 할 것은 이것이다.

+0

St3fan, 내가 음악을 시작하기 전까지는 전화가 울리지 않는다는 사실에 의해 입증 된 앱 시작시 이것을했다. MPMusicPlayerController가 활성화되자 마자 타이머가 다시 활성화되고 다시 사용할 수 없게됩니다. – tddmonkey

1

이 문제에 대한 해결책을 찾았습니다. 음악 재생을 시작한 후 약 5 초 후에 idleTimer를 비활성화하는 메서드를 호출합니다. 해킹 비트이지만 해결 방법입니다.

5

필자도 비슷한 문제가 있으며 수정 사항을 발견했습니다. 고침은 당신을 위해 또한 작동 할 수도 있습니다 :

나는 idleTimerDisabled를 먼저 NO로 설정 한 다음 YES로 설정하는 방법을 주기적으로 (매 10 초마다) 호출합니다. YES 혼자 문제가 해결되지 않습니다에

- (void)calledEveryTenSeconds 
{ 
    [UIApplication sharedApplication].idleTimerDisabled = NO; 
    [UIApplication sharedApplication].idleTimerDisabled = YES; 
} 

만 설정. UIApplication에 의해 인식되기 위해서는 먼저 속성이 변경되어야합니다.

내 문제는 헤드폰 리모컨을 통해 iPod 플레이어에서 음악 트랙을 전환하자마자 화면이 어두워지는 것입니다. 제 추측은 당신이 겪고있는 것과 같은 문제라는 것입니다.

+0

henning77, 감사합니다 !! 귀하의 방법을 사용하여 새 앱에서 작동하도록했습니다. 많은 사람들이 질문/문제를 idletimer를 비활성화하는 정상적인 방법으로 오해했습니다. 그러나 그것은 MPMUSICPLAYER 문제를 다루는 것에 관한 것입니다. idleTimerDisabled = NO; 참으로 비판적이다. 그것은 그것없이 일하지 않을 것이다. – GeneCode