2012-04-10 1 views
1

내 문제는 - 내 iPad에서 오디오가 백그라운드에서 재생되고있을 때 "내 앱 아이콘"이 나오지 않습니다. iPodMusicPlayer를 사용하고 있습니다. 백그라운드에서 오디오를 재생하는 동안 나는 앱이 백그라운드에서배경에 오디오를 재생하는 iPad 앱이 있지만 아이팟 컨트롤로 앱 아이콘이 나타나지 않습니다.

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent { 
     if (receivedEvent.type == UIEventTypeRemoteControl) { 
      switch (receivedEvent.subtype) { 

      case UIEventSubtypeRemoteControlTogglePlayPause: 
       [self performSelector:@selector(playPause:)]; 
       break; 

      case UIEventSubtypeRemoteControlPreviousTrack: 
      //[self previousSong:nil]; 
      //[self performSelector:@selector(previousSong:)]; 
      break; 

      case UIEventSubtypeRemoteControlNextTrack: 
       //[self performSelector:@selector(nextSong:)]; 
       break; 
      default: 
       break; 
     } 
    } 
} 

때 이러한 이벤트를 보낼의 Info.plist 것

- (void)viewDidAppear:(BOOL)animated { 
     [super viewDidAppear:animated]; 
     [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
     [self becomeFirstResponder]; 
} 

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents]; 
    [self resignFirstResponder]; 
    [super viewWillDisappear:animated]; 
} 

- (BOOL)canBecomeFirstResponder { 
     return YES; 
} 

// 아이팟 컨트롤이 나는 또한 설정 ..이 코드를 작성해야 "필요한 배경 모드"

답변

2

또한 Info.plistUIBackgroundModes을 추가하고 그 값을 audio으로 설정해야합니다.

백그라운드에서 작업을 실행하는 방법에 대한 자세한 내용은 iOS 앱 프로그래밍 가이드 (App States and Multitasking section)를 확인하십시오.

[업데이트] 또한

application:didFinishLaunchingWithOptions:에 두 줄을 추가하여 AppDelegate.m :

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive: YES error: nil]; 

그리고이 코드는 오디오 재생을 시작하는 경우 :

UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid; 
[_player play]; 
newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; 

이 정상적으로를 해. 시뮬레이터 및 장치에서 테스트되었습니다.

+0

이미이 값을 설정했습니다. 문제는 iPodMusicPlayer 때문이지만 확실하지 않은 것 같습니다. –

+0

업데이트 된 답변을 확인하십시오. –

관련 문제