### 音乐后台播放
* .当程序进入后台的时候,开启后台任务 ```
- (void)applicationDidEnterBackground:(UIApplication *) {
// 开启后台任务
[application beginBackgroundTaskWithExpirationHandler:nil];
}
```
* .在项目的Targets页面,设置Capabilities,BackgroundModes选择第一项,`Audio, AirPlay and Picture in Picture` * .设置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;
}
``` ### 显示锁屏信息
* .当开始播放的时候,开启锁屏信息,抽取一个方法 ```
[self updateLockInfo];
```
* .导入`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];
}
```
* .控制器默认不能成为第一响应者,需要实现以下方法 ```
- (BOOL)canBecomeFirstResponder {
return YES;
}
```
* .监听远程事件 ```
- (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;
}
```

iOS后台播放的更多相关文章

  1. iOS后台播放音乐

    iOS实现在后台播放音乐 iOS4之后就支持后台播放音频了.只需下面两步就可以实现后台播放音频操作了. 1. 在Info.plist中,添加"Required background mode ...

  2. ios 后台播放音乐1条注意事项

    除了设置程序的后台模式,还需要几行代码 AVAudioSession *session = [AVAudioSession sharedInstance]; [session setCategory: ...

  3. iOS 后台播放音乐

    在info.plist文件中添加 下面是后台播放音频的完整测试代码: 引入文件<AVFoundation/AVFoundation.h> //后台播放音频设置 AVAudioSession ...

  4. iOS AvPlayer AvAudioPlayer音频的后台播放问题

    iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,Av ...

  5. iOS设备后台播放音乐方法

    iOS设备后台播放音乐方法 1 在设置Capabliites中打开Background Modes,选择Audio And AirPlay 2 在控制viewDidLoad中添加下面代码 AVAudi ...

  6. IOS 后台执行 播放音乐

    iOS 4開始引入的multitask.我们能够实现像ipod程序那样在后台播放音频了. 假设音频操作是用苹果官方的AVFoundation.framework实现.像用AvAudioPlayer.A ...

  7. IOS后台运行 之 后台播放音乐

    iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,Av ...

  8. iOS从零开始学习直播之音频2.后台播放和在线播放

    本篇主要讲音频的后台播放和在线播放. 后台播放   上一篇写的工程运行之后程序退至后台,发现运行不了,歌停止了,这显然不行,音乐后台播放是标配啊.今天就来讲一下后台播放. 1.在plist文件里,告诉 ...

  9. iOS开发--QQ音乐练习,后台播放和锁屏界面

    一.设置后台播放 首先允许程序后台播放 代码实现 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...

随机推荐

  1. nutch1.4 在windows下面提示 java.io.IOException: CreateProcess error=2, ϵͳÕҲ»µ½ָ¶

    eclipse运行nutch1.4在window下面提示异常解决 需要安装cynwin,被设置环境变量 1:安装cygwin 注:在选择要安装的软件包的时候我选择了在All这一行上后面的Default ...

  2. java-Collections工具类使用

    Collections工具类方法介绍 Collections.reverse(list);//list顺序反转

  3. 数据库开发基础 SQL Server 数据库的备份、还原与分离、附加

    认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是 一.在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点 二. ...

  4. 【转】HTTP中的长连接和短连接分析

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...

  5. C++ 异常机制分析

    C++异常机制概述 异常处理是C++的一项语言机制,用于在程序中处理异常事件.异常事件在C++中表示为异常对象.异常事件发生时,程序使用throw关键字抛出异常表达式,抛出点称为异常出现点,由操作系统 ...

  6. NuGet在Push的时候提示“远程服务器返回错误:(403)已禁用”问题解决

    在使用NuGet把包push到nuget官网的时候,提示了如下信息: Failed to process request. 'The specified API key is invalid or d ...

  7. UVA11426 欧拉函数

    大白书P125 #include <iostream> #include <cstring> using namespace std; #define MMX 4000010 ...

  8. 洛谷P1629 邮递员送信

    题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员每 ...

  9. JavaScript碰到的几个方法

    =>isNaN() 函数用于检查其参数|是否|是|非数字值. 绕吧,我给它断个句,别一不小心看叉了 百度百科告诉我们,NaN,是Not a Number的缩写 所以, alert(isNaN(1 ...

  10. 【Alpha版本】冲刺-Day8

    队伍:606notconnected 会议时间:11月16日 会议总结 张斯巍(433) 今天安排:回收站界面设计 完成度:90% 明天计划:关注界面设计 遇到的问题:无 感想:有时候自己设计的队友说 ...