2012-06-03 5 views
2

잠금 화면 사용/이제는 앱 제어 기능을 사용하려고하지만 이벤트를 수신하지 않습니다. 설명서를 보면 꽤 정직 해 보였으므로 어떤 결과도 얻지 못했을 때 놀랐습니다. 내 앱은 기기의 오디오 재생 이외의 목적으로 리모컨 이벤트를 수신해야합니다. NSLog를 사용하여 일부 확인을 인쇄하는 것으로 테스트 해 보았습니다. 설명서에 언급되지 않은 오디오 또는 미디어 프레임 워크를 사용해야합니까? 내가 크게 다음 원격 제어 이벤트 수신 안 함

는 관련 코드 감사 원격 제어 이벤트가 될 것 등록되지 않은 이유에 관한 그 ... 어떤 통찰력에 문제가 있어야한다고 생각하지 않도록 내가 경고 나 오류가 수신되지 않는 경우 :

- (void)viewDidAppear:(BOOL)animated{ 
    [super viewDidAppear:animated]; 

    //Register for lock screen controls 
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
    [self becomeFirstResponder]; 
} 

- (void)viewWillDisappear:(BOOL)animated{ 
    [super viewWillDisappear:animated]; 

    //Unregister lock screen controls 
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents]; 
    [self resignFirstResponder]; 
} 

- (BOOL)canBecomeFirstResponder{ 
    return YES; 
} 

//Lock screen controls 
- (void)remoteControlReceivedWithEvent:(UIEvent *)event{ 
    NSLog(@"RECEIVED"); 
    if (event.type == UIEventTypeRemoteControl) { 

     switch (event.subtype) { 

      case UIEventSubtypeRemoteControlTogglePlayPause: 
       NSLog(@"RECEIVED"); 
       break; 

      case UIEventSubtypeRemoteControlPreviousTrack: 
       NSLog(@"RECEIVED"); 
       break; 

      case UIEventSubtypeRemoteControlNextTrack: 
       NSLog(@"RECEIVED"); 
       break; 

      default: 
       break; 
     } 
    } 
} 

답변

3

. [AVAudioSession setActive : withFlags : error :]를보십시오.

+0

흠. 나는 오디오 세션의 부족이 문제의 일부인지 궁금해했다. – Squatch

+0

이것이 문제였습니다. 내 앱은 오디오 자체를 재생하지 않지만 오히려 오디오를 재생하는 다른 기기와 통신합니다. 오디오 세션을 추가했지만 앱이 마지막으로 오디오를 재생 한 경우 원격 이벤트 만 수신합니다. 이 문제를 해결하는 방법에 대한 새로운 질문을 게시 할 예정이지만 감사 드리고 싶습니다. – Squatch

+0

@ 스쿼치, 다른 질문을 게시하게 되었습니까? – Moshe

1

귀하는 이미 모든 주에서 설정하려는 ReceivingRemoteControlEvents의 상태가 양호한가요?

당신은 AppDelegate에에 UIApplicationDelegate를 통해 필요한 프로토콜에 주목해야한다. applicationWillResignActiveapplicationDidBecomeActive에 구현해야하는 것처럼 보입니다.

그러나, App States and Multitasking에 대한 애플의 문서가 있습니다. 귀하의 목적에 맞게 응용 프로그램 상태를 처리하는 데 도움이 될 것이라고 생각합니다.

은 당신이 도움이되기를 바랍니다! Jojas 당신이 활성 오디오 세션을 가지고 있는지 확인해야 언급 한 것 외에도

+0

나는 당신이 옳다고 생각합니다. 게시 된 코드는 모두 내보기 컨트롤러에 있었고 위임자는 이러한 활성 상태 메서드를 설정하지 않았습니다. 나는 당신의 제안을 시도하고 다시보고 할 것입니다. – Squatch

+0

기본 AppDelegate에 의해 구현 된 메소드가있는 것으로 나타났습니다. 문제는 저의 오디오 세션 부족 때문이었습니다. 그래도 도와 ​​줘서 고마워. 당신이 연결 한 문서는 무슨 일이 일어나고 있는지 정확하게 이해하려고 할 때 많은 도움이되었습니다. – Squatch

+0

기꺼이 도와 드리겠습니다. 그냥 마음 편하게 물어봐. – Sakares

관련 문제