2012-05-07 24 views
1

我設置AVPlayerLayer有:AVPlayerLayer停止播放時,進入後臺模式

 audioPlayer = [[AVPlayer alloc]initWithURL:[NSURL fileURLWithPath:fileName]]; 
     avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:audioPlayer]; 
     [avPlayerLayer setFrame:self.view.bounds]; 
     [[self.view layer] addSublayer:avPlayerLayer]; 
     [audioPlayer play]; 

在AppDelegete我補充一下:

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

現在UIViewController類我補充一下:

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

- (BOOL)canBecomeFirstResponder { 
    return YES; 
} 

- (void)remoteControlReceivedWithEvent:(UIEvent *)event { 
    switch (event.subtype) { 
     case UIEventSubtypeRemoteControlTogglePlayPause: 
      if (audioPlayer.rate == 0.0) { 
       [avPlayerLayer.player play]; 
      } else { 
       [avPlayerLayer.player pause]; 
      } 
      NSLog(@"4"); 
      break; 
     case UIEventSubtypeRemoteControlPlay: 
      [avPlayerLayer.player play]; 
      break; 
     case UIEventSubtypeRemoteControlPause: 
      [avPlayerLayer.player pause]; 
      NSLog(@"3"); 
      break; 
     case UIEventSubtypeRemoteControlNextTrack: 
      [self didPressNextSong:nil]; 
      NSLog(@"2"); 
      break; 
     case UIEventSubtypeRemoteControlPreviousTrack: 
      [self didPressLastSong:nil]; 
      NSLog(@"1"); 
      break; 
     default: 
      break; 
    } 
} 

現在問題是當我移動到背景模式時,歌曲停止播放,但是當我按遙控器上的播放按鈕時rol(當我按下雙擊主頁按鈕時彈出的菜單)歌曲繼續播放它停止播放的位置。

任何想法,爲什麼我有這個問題?

+0

我和你有同樣的問題。你有沒有找到解決辦法?根據我的發現,只要AVPlayer沒有與之關聯的AVPlayerLayer(只要Joshua Smith的答案中的所有內容都已實現),AVPlayer就會播放背景音頻。但是,該應用似乎很快進入後臺,我無法使用applicationWillResignActive中的AVPlayerLayer,並且音頻被切斷。如果你知道一個解決方案,我會永遠感激! – mrabin

回答