现在主流的音乐播放器基本都实现了锁屏后还能控制暂停、播放、切换的功能,之前一直没有在意,这两天闲来无事就研究了一下:

其实主要原理就是利用了iOS5.0以后出来的新API,

MPNowPlayingInfoCenter ,类实现其实很简单

MP_EXTERN_CLASS_AVAILABLE(5_0)
@interface MPNowPlayingInfoCenter : NSObject// Returns the default now playing info center.
// The default center holds now playing info about the current application.
+ (MPNowPlayingInfoCenter *)defaultCenter;// The current now playing info for the center.
// Setting the info to nil will clear it.
@property (copy, nullable) NSDictionary<NSString *, id> *nowPlayingInfo;@end

可以看到是一个全局管理的单例模式,里面只有一个字典属性,用来保存在锁屏界面显示的信息;

在锁屏界面的点击事件是调用的一个返回方法,前提是要先激活一下

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
#pragma mark - 截取锁屏界面的点击事件
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {if (receivedEvent.type == UIEventTypeRemoteControl) {switch (receivedEvent.subtype) {case UIEventSubtypeRemoteControlPlay:{[self playerOrPause:YES];}break;case UIEventSubtypeRemoteControlPause:{[self playerOrPause:NO];}break;case UIEventSubtypeRemoteControlNextTrack:{[self touchNextTrack];}break;case UIEventSubtypeRemoteControlPreviousTrack:{[self touchPreviousTrack];}break;default:NSLog(@"没有处理过这个事件------receivedEvent.subtype==%ld",(long)receivedEvent.subtype);break;}}
}

让程序在后台播放音乐需要在plist文件里加一个配置,如下图

然后还是要先激活一下

// 设置 音频会话类型AVAudioSession *session = [AVAudioSession sharedInstance];// 类型是:播放和录音[session setCategory:AVAudioSessionCategoryPlayback error:nil];// 而且要激活 音频会话[session setActive:YES error:nil];

好了,基本实现要点已经说完了,完整版有个Demo,有兴趣的可以研究一下, 下载链接 密码: hvq8

iOS音乐播放器实现后台播放锁屏界面控制相关推荐

  1. android 锁屏显示音乐播放器,Android锁屏界面控制音乐播放

    目前,在锁屏界面控制音乐播放有两种常用方式. 第一种方式:原生Android系统及自带音乐播放器. 锁屏界面端: 原生Android中,锁屏界面相关的UI由KeyguardHostView提供,Key ...

  2. iOS音乐播放器的后台播放和远程控制

    iOS的后台任务一直有很严格的限制,一般情况下只有几类情况能使用后台任务,下面介绍其中的一种 音乐的后台播放. 1.要支持后台任务,首先你得告诉系统你需要后台任务,所以你首先在Info.plist文件 ...

  3. 音乐播放器——实现后台播放、摇摇切歌等功能

    前言 首先声明,小白一只,android完全自学,若代码中有不妥或更简便的方法求指教(大佬带带我)... APP 欢迎界面 主界面 音乐界面 实现功能 1.遍历本地音乐 2.音乐后台播放 3.音乐封面 ...

  4. 安卓播放器实现后台播放服务

    安卓开发,除了我们经常写的Activity.Fragment等显示给用户的控件外,我们还可能需要程序在退出到后台的时候,继续给用户提供服务的功能,这里就需要用到Android的服务Service. 安 ...

  5. SystemUI锁屏界面

    SystemUI启动的时候启动各个SERVICE,这些Service不是四大组件的service,这个SERVICE继承SystemUI,实现了start()和onBootComplete方法.其中S ...

  6. iOS - 音频后台播放设置及锁屏界面的显示与控制

    音频后台播放设置 1.先在项目 的Capabilities中进行设置,开启后台模式 2.激活音频会话 其它地方也可以,只要保证能执行到以下代码块的内容即可,这里我选择在AppDelegate.m里设置 ...

  7. 音乐播放类应用后台播放耗电评测报告

    如今人们的生活已经离不开音乐,同样也离不开智能手机.回家过年路上太枯燥乏味,怎能少了音乐的陪伴!那你是否有过这样的担忧,当你的手机电量撑不起你的音乐享受,漫漫长途该如何度过啊? 本次评测华为终端开放实 ...

  8. Android音乐播放器开发(5)—播放界面(播放、暂停、上一首、下一首,顺序播放、随机播放、拖拽进度条…)

    1. 说明 源码已同步到Gitee仓库,Github仓库,觉得还不错的话帮忙点个"star"吧,非常感谢. Android播放器专栏其它文章: 服务端:Android音乐播放器开发 ...

  9. (1)H5实现音乐播放器【正在播放-歌词篇】

    近期闲来无事,就想着复习一下前端的东西,然后正好跟朋友搞了一个公共开放的音乐api接口,就想着写一个音乐播放器玩玩! 话不多说,直接上图,然后上代码 [播放器显示正在播放] 实现功能: 1:歌词随着歌 ...

  10. iOS锁屏界面音频播放控制

    公司的app里面有后台音频播放功能,最近发现,当在锁屏界面(后台)时,不能控制播放页面的音频播放,是因为没有实现远程控制事件处理. 下面说说大概实现过程:由于后台播放功能早已实现(不做详细叙述),这里 ...

最新文章

  1. ssh远程执行多个命令
  2. margin和padding
  3. [TypeScript] Using Interfaces to Describe Types in TypeScript
  4. BRCM5.02编译十:cmake: command not found
  5. linux7.0怎么设置中文,CentOS 7 yum安装zabbix 设置中文界面
  6. oo第三次博客-JML规格
  7. 解决这个警告⚠️:warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory...
  8. centos6 升级openssh7.0
  9. Nginx基本数据结构之ngx_chain_t
  10. 40-400-030-运维-优化-MySQL入门调优脚本tuning-primer的使用
  11. php 引入echarts路径,angular4中引入echarts的方法(代码示例)
  12. 互联网人必读 | 大数据思维的十大核心原理
  13. JScript中的条件注释详解(转载自网络)
  14. nginx+iis、NLB、Web Farm、Web Garden、ARR
  15. Python实战项目(一)使用API
  16. PSV破解流程+软件游戏安装(最简单/最快的方法整理,已测支持3.65~3.68,理论上支持全系列版本)
  17. linux系统清理命令行,告诉你Ubuntu系统较全面清理的方法及命令
  18. CSS学习笔记 - 布局
  19. [08S01] Communications link failure报错解决
  20. Eclipse Debug不能热部署代码may be out-of-synch

热门文章

  1. SaaS之光照亮经济型酒店信息化道路
  2. 服务器设置静态IP地址教程,在Ubuntu服务器18.04上设置静态IP地址
  3. postgreSQL安装成功后打开pgadmin4出现错误:Fatal error:The pgAdmin 4 server could not be contacted:
  4. 解决视频资源音乐资源在Android模拟器中不能播放的问题
  5. WPF TextBlock Trimming
  6. 百度EasyDL实体抽取和关系抽取
  7. JAVAWEB开发之Hibernate详解(二)——Hibernate的持久化类状态与转换、以及一级缓存详解、关联关系的映射(一对多、多对多、级联)
  8. opencv-python实际演练(二)军棋自动裁判(5)棋子文字的自动识别
  9. MA5626 MA5821 POE供电版开启POE供电高优先级配置指导
  10. 【转】O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)