iOS Remote Control

前言

RemoteControl,这里就翻译为远程控制吧。

远程控制是为用户提供操作App多媒体的。远程控制事件源于外部附件或由系统显示的传输控制,并通过媒体播放器框架的类传送到应用程序。播放音频或视频内容的应用程序使用这些事件来开始和停止播放,更改曲目,甚至速度的项目。所有的媒体应用程序应该支持这些事件。

除了支持远程控制事件,应用程序可以使用媒体播放器框架,以提供播放信息的曲目。该系统在适当的地方显示播放信息,如锁屏和控制中心。有关媒体播放器框架类的更多信息,见媒体播放器框架参考Media Player Framework Reference.

Remote Control功能

RemoteControl可以用来在不打开app的情况下控制app中的多媒体播放,主要包括:

  1. 锁屏界面双击Home键后出现的播放操作区域
  2. iOS7之后控制中心的播放操作区域
  3. iOS7之前双击home键后出现的进程中向左滑动出现的播放操作区域
  4. AppleTV,AirPlay中显示的播放操作区域
  5. 耳机线控
  6. 车载系统的设置

让App支持Remote Control

要接收远程控制事件,需要做到以下的几点:

  1. 接收者必须可以成为第一响应者;
  2. 接收者必须显示声明接收RemoteControl事件;
  3. App必须是Now Playing App.

若应用程序还提供了正在播放的信息,使用MPNowPlayingInfoCenter对象在适当的时候更新信息。

效果图

类似网易云音乐锁屏状态下的Now Playing显示信息:

image

环境准备

要使App支持Remote Control,需要设置一下info.plist文件,添加required background modes,并添加一个值为:

接下来,播放音频之前先要设置AVAudioSession模式:

扩展UIApplication作为第一响应者

image

在iOS上,响应者链如上图,由图可知,若其它视图没有处理,最终会传到UIApplication,因此使用UIApplication作为第一响应者是最合适的。

扩展头文件声明,我们在监听到对应的事件时,发送通知。

在实现文件中,我们需要处理监听:

在播放audio视图中监听通知

在播放音频的界面,可以是在UIViewController里,也只可以是某个UIView里,因此在对应的类在创建或者初始化时调用监听:

然后处理一下事件回调:

配置NowPlaying显示数据

要想在当前播放中心中显示当前播放的音频的信息,需要通过MPNowPlayingInfoCenter类,它是一个单例。我们要显示什么就在它的nowPlayingInfo属性中设置相关配置数据。

要使用这个类及其相关属性定义,需要引入这两个头文件:

这里只设置几项,更多设置,请到MPMediaItem.h头文件中查看:

到此就可以实现我们远程控制的功能。不过这里只考虑实现,并不考虑什么时候接收,什么时候不再接收,而这里的做法时什么时候都接收远程控制。这此事就留给大家去学习吧!

源代码

大家可以到我的GITHUB下载demo:https://github.com/CoderJackyHuang/IOSAudioRemoteControl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值