appDelegate里面加入如下代码获取后台播放权限
- (void)setAudioBackstagePlay{
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
}
//重写父类方法,接受外部事件的处理
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {
NSLog(@"remote");
if (receivedEvent.type == UIEventTypeRemoteControl) {
switch (receivedEvent.subtype) { // 得到事件类型
case UIEventSubtypeRemoteControlTogglePlayPause: // 暂停 ios6
[_player musicPause]; // 调用你所在项目的暂停按钮的响应方法 下面的也是如此
break;
case UIEventSubtypeRemoteControlPreviousTrack: // 上一首
[self lastMusic];
break;
case UIEventSubtypeRemoteControlNextTrack: // 下一首
[self nextMusic];
break;
case UIEventSubtypeRemoteControlPlay: //播放
[_player musicPlay];
break;
case UIEventSubtypeRemoteControlPause: // 暂停 ios7
[_player musicPause];
break;
default:
break;
}
}
}
- (void)configNowPlayingCenter {
NSLog(@"锁屏设置");
// BASE_INFO_FUN(@"配置NowPlayingCenter");
YBVideoListModel * list = _model.audioList[_currentIndexPath.row];
//以下代码是加载锁屏显示网络图片以及其他设置
[[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:list.thumbUrl] options:SDWebImageRetryFailed progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
if (image == nil) {
image = [UIImage imageNamed:@"default_music"];
}
NSMutableDictionary * info = [NSMutableDictionary dictionary];
//音乐的标题
[info setObject:list.title forKey:MPMediaItemPropertyTitle];
//音乐的艺术家
NSString *author= list.singer;
[info setObject:author forKey:MPMediaItemPropertyArtist];
//音乐的播放时间
[info setObject:@(_player.player.currentTime.value) forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
//音乐的播放速度
[info setObject:@(1) forKey:MPNowPlayingInfoPropertyPlaybackRate];
//音乐的总时间
[info setObject:@(list.duration) forKey:MPMediaItemPropertyPlaybackDuration];
//音乐的封面
MPMediaItemArtwork * artwork = [[MPMediaItemArtwork alloc] initWithImage:image];
[info setObject:artwork forKey:MPMediaItemPropertyArtwork];
//完成设置
[[MPNowPlayingInfoCenter defaultCenter]setNowPlayingInfo:info];
}];
}