您的位置:首页 > 移动开发 > IOS开发

iOS AVPlayer后台播放的实现

2016-08-04 18:57 399 查看

实现后台播放的步骤 ##

一: 在appDelegate中通知app支持后台播放

二:在info.plist文件中添加一个key项,防止程序进入后台时程序被 suspend

三:在播放控制界面接受远程控制

四:对远程控制事件作出相应的操作

实现步骤

第一步:在appDelegate中通知app支持后台播放

// 告诉app支持后台播放
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];


第二步:在info.plist文件中添加一个key项



在这个时候你的app就可以后台就行播放了 当时要想在手机的上拉菜单中对app进行控制就要添加以下代码

第三步:在播放控制界面接受远程控制

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:YES];
// 开始接受远程控制
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}

- (void)viewWillDisappear:(BOOL)animated {
// 接触远程控制
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
// 重写父类成为响应者方法
- (BOOL)canBecomeFirstResponder {
return YES;
}


第四步:对远程控制事件作出相应的操作

//重写父类方法,接受外部事件的处理
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {
if (receivedEvent.type == UIEventTypeRemoteControl) {

switch (receivedEvent.subtype) { // 得到事件类型

case UIEventSubtypeRemoteControlTogglePlayPause: // 暂停 ios6
[self actionStopButton:self.musicViewNew.stopButton]; // 调用你所在项目的暂停按钮的响应方法 下面的也是如此
break;

case UIEventSubtypeRemoteControlPreviousTrack:  // 上一首
[self actionUpButton:self.musicViewNew.upMusicButton];
break;

case UIEventSubtypeRemoteControlNextTrack: // 下一首
[self actionDownButton:self.musicViewNew.downMusicButton];
break;

case UIEventSubtypeRemoteControlPlay: //播放
[self actionStopButton:self.musicViewNew.stopButton];
break;

case UIEventSubtypeRemoteControlPause: // 暂停 ios7
[self actionStopButton:self.musicViewNew.stopButton];
break;

default:
break;
}
}
}


这样你的简单的播放音乐的app后台播放就算完成了,如果想理解锁屏后手机显示当前播放音乐的专辑以及照片的操作,且听下回分解~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息