iOS 语音播报解决方案(实现支付宝语音收款功能)

iOS 语音播报解决方案(实现支付宝语音收款功能)
iOS10 语音播报填坑详解(解决串行播报中断问题)
在来聊这类需求的解决方案之前,咱们还是先来聊一聊这类需求的真实使用场景:语音播报。语音播报需求运用最为广泛的应该是收银对账了,就类似于支付宝、微信、收钱吧等的收款语音提示一样。在iOS 10 之前,苹果没有提供通知扩展类的时候,如果想要实现杀进程也可以正常播报语音消息很难,从iOS 10添加了这一个通知扩展类后,实现杀进程播报语音就相对简单很多了。
我们先来看一个陌生的Tagget
  • Notification Service Extension

这个Notification Service Extension 就是苹果在 iOS 10的新系统中为我们添加的新特性,这个新特性就能帮助我们用来解决杀死进程正常语音播报

在这里插入图片描述
详细步骤
  • 创建一个通知扩展类
  • 添加语音播报逻辑代码
  • 设置支持后台播放
  • iOS 10 以下系统如何实现串行播报
创建一个通知扩展类

首先我点击 Xcode 的 File -> New -> Target -> Notification Service Extension,新建一个通知扩展类Target。

在这里插入图片描述


在这里插入图片描述

新建完后,我们的工程会多出一个文件夹,这里示例Demo的Target命名为 NotificationSE,文件夹中有NotificationService.h NotificationService.m 文件,这两个文件就是后面我们要用到的通知扩展类文件

在这里插入图片描述

在没有对NotificationService做任何修改时,我们先来预览下 .m 文件中都有哪些内容

在这里插入图片描述

从上面的截图,我们可以看到,.m 文件其实很简单,就 2 个函数,其实后面我们对这个文件做逻辑处理,也是很简单的。

添加语音播报逻辑代码

注意,这里我们使用的语音合成和播报组件也是苹果官方提供的组件,AVSpeechSynthesizer,AVSpe