标签:
### 音乐后台播放 * 1.当程序进入后台的时候,开启后台任务 ``` - (void)applicationDidEnterBackground:(UIApplication *) { // 开启后台任务 [application beginBackgroundTaskWithExpirationHandler:nil]; } ``` * 2.在项目的Targets页面,设置Capabilities,BackgroundModes选择第一项,`Audio, AirPlay and Picture in Picture` * 3.设置AudioSession会话 ``` - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 1.拿到AVAudioSession会话 AVAudioSession *session = [AVAudioSession sharedInstance]; // 2.设置类型 [session setCategory:AVAudioSessionCategoryPlayback error:nil]; // 3.激活 [session setActive:YES error:nil]; return YES; } ``` ### 显示锁屏信息 * 1.当开始播放的时候,开启锁屏信息,抽取一个方法 ``` [self updateLockInfo]; ``` * 2.导入`MediaPlayer/MediaPlayer.h`框架,在播放信息中心设置信息 ``` - (void)updateLockInfo { // 获取播放信息中心 MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter]; // 创建信息字典 NSMutableDictionary *infos = [NSMutableDictionary dictionary]; // 设置信息内容 infos[MPMediaItemPropertyAlbumTitle] = self.playingMusic.name; infos[MPMediaItemPropertyAlbumArtist] = self.playingMusic.singer; infos[MPMediaItemPropertyArtwork] = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:self.playingMusic.icon]]; infos[MPMediaItemPropertyPlaybackDuration] = @(self.player.duration); infos[MPNowPlayingInfoPropertyElapsedPlaybackTime] = @(self.player.currentTime); // 根据字典设置播放中心 [center setNowPlayingInfo:infos]; // 开启远程事件 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; // 让当前控制器成为第一响应者 [self becomeFirstResponder]; } ``` * 3.控制器默认不能成为第一响应者,需要实现以下方法 ``` - (BOOL)canBecomeFirstResponder { return YES; } ``` * 4.监听远程事件 ``` - (void)remoteControlReceiveWithEvent:(UIEvent *)event { switch (event.subtype) { // 当点击播放或者暂停按钮的时候 case UIEventSubtypeRemoteControlPlay: case UIEventSubtypeRemoteControlPause: [self playOrPauseButtonClick]; break; // 当点击下一首按钮的时候 case UIEventSubtypeRemoteControlNextTrack: [self nextButtonClick]; break; // 当点击上一首按钮的时候 case UIEventSubtypeRemoteControlPreviousTrack: [self previousButtonClick]; break; default: break; } ```
标签:
原文地址:http://www.cnblogs.com/songxing10000/p/5169997.html