### 音乐后台播放
* .当程序进入后台的时候,开启后台任务 ```
- (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. React 点击按钮显示div与隐藏div,并给div传children

    最近做了一个react的点击按钮显示与隐藏div的一个小组件: [筛选]组件FilterButton import React,{Component} from 'react'; import {re ...

  2. Notes on 'Selective Search For Object Recognition'

    UijlingsIJCV2013, Selective Search For Object Recognition code 算法思想 利用分割算法将图片细分成很多region, 或超像素. 在这个基 ...

  3. java-首字母大小写

    /** * 首字母小写 * * @param str * @return */ public static String toLowerCaseFirstChar(String s) { if (Ch ...

  4. 控件 UI: 字体的自动继承的特性, Style, ControlTemplate

    字体的自动继承的特性 Style 样式 ControlTemplate 控件模板 示例1.演示字体的自动继承的特性Controls/UI/FontInherit.xaml <Page x:Cla ...

  5. C# 后台获取WebApi 方法

    以下是方法 返货json数据 代码都有注释 /// <summary>        /// 请求webpapi        /// </summary>        // ...

  6. Hash_bzoj1862: [Zjoi2006]GameZ游戏排名系统

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  7. CSS3盒模型display初探(display:box/display:flex)

    可以实现水平等分切割等.日后在研究,做个记录. 首先要声明:display:box,像谷歌浏览器要加前缀识别码:display:-webkit-box; 然后才开始使用其属性,同时也是要带上前缀识别码 ...

  8. Android程序设计-圆形图片的实现

    在android中,google只提供了对图形的圆形操作,而没有实现对图片的圆形操作,所以我们无法实现上述操作,在此我们将使用框架进行设计(下述框架为as编写): https://github.com ...

  9. 洛谷P3398 仓鼠找sugar

    题目描述 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室(c) ...

  10. RabbitMQ代码第一步

    Hello RabbitMQ 终于到了使用.Net连接RabbitMQ的时候了,我们首先新建一个控制台应用程序,在程序包管理控制器中NuGet中下载 RabbitMQ. Install-Package ...