首页 > 代码库 > AVPlayer 音乐播放后台播放,以及锁屏主题设置
AVPlayer 音乐播放后台播放,以及锁屏主题设置
第一步:在appDelegate中通知app支持后台播放:在方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}
中添加如下代码:
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; //默认情况下扬声器播放 [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; [audioSession setActive:YES error:nil];
第二步:在info.plist文件中添加一个key项
第三步:在播放控制界面接受远程控制
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:YES]; // 开始接受远程控制 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; [self resignFirstResponder]; }- (void)viewWillDisappear:(BOOL)animated{// 接触远程控制 [[UIApplication sharedApplication] endReceivingRemoteControlEvents]; [self becomeFirstResponder];}// 重写父类成为响应者方法- (BOOL)canBecomeFirstResponder{ return YES;}
第四步:对远程控制事件作出相应的操作
//重写父类方法,接受外部事件的处理- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent { NSLog(@"remote"); if (receivedEvent.type == UIEventTypeRemoteControl) { switch (receivedEvent.subtype) { // 得到事件类型 case UIEventSubtypeRemoteControlTogglePlayPause: // 暂停 ios6 [self.player pause]; // 调用你所在项目的暂停按钮的响应方法 下面的也是如此 break; case UIEventSubtypeRemoteControlPreviousTrack: // 上一首 [self lastMusic:nil]; break; case UIEventSubtypeRemoteControlNextTrack: // 下一首 [self nextMusic:nil]; break; case UIEventSubtypeRemoteControlPlay: //播放 [self playMusic:nil]; break; case UIEventSubtypeRemoteControlPause: // 暂停 ios7 [self playMusic:nil]; break; default: break; } }}
第五步:设置锁屏主题
注意这个播放仅需要在播放状态改变的时候调用,例如初始化播放器,上一首下一首等操作
//Now Playing Center可以在锁屏界面展示音乐的信息,也达到增强用户体验的作用。////传递信息到锁屏状态下 此方法在播放歌曲与切换歌曲时调用即可- (void)configNowPlayingCenter { NSLog(@"锁屏设置"); // BASE_INFO_FUN(@"配置NowPlayingCenter"); NSMutableDictionary * info = [NSMutableDictionary dictionary]; //音乐的标题 [info setObject:self.nameLabel.text forKey:MPMediaItemPropertyTitle]; //音乐的艺术家 NSString *author= [[self.playlistArr[self.currentNum] valueForKey:@"songinfo"] valueForKey:@"author"]; [info setObject:author forKey:MPMediaItemPropertyArtist]; //音乐的播放时间 [info setObject:@(self.player.currentTime.value) forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime]; //音乐的播放速度 [info setObject:@(1) forKey:MPNowPlayingInfoPropertyPlaybackRate]; //音乐的总时间 [info setObject:@(self.totalTime) forKey:MPMediaItemPropertyPlaybackDuration]; //音乐的封面 MPMediaItemArtwork * artwork = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"0.jpg"]]; [info setObject:artwork forKey:MPMediaItemPropertyArtwork]; //完成设置 [[MPNowPlayingInfoCenter defaultCenter]setNowPlayingInfo:info];}
AVPlayer 音乐播放后台播放,以及锁屏主题设置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。