我設置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(當我按下雙擊主頁按鈕時彈出的菜單)歌曲繼續播放它停止播放的位置。
任何想法,爲什麼我有這個問題?
我和你有同樣的問題。你有沒有找到解決辦法?根據我的發現,只要AVPlayer沒有與之關聯的AVPlayerLayer(只要Joshua Smith的答案中的所有內容都已實現),AVPlayer就會播放背景音頻。但是,該應用似乎很快進入後臺,我無法使用applicationWillResignActive中的AVPlayerLayer,並且音頻被切斷。如果你知道一個解決方案,我會永遠感激! – mrabin