【iOS】后台播报TTS(防止APP后台被杀死)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【iOS】后台播报TTS(防止APP后台被杀死)相关的知识,希望对你有一定的参考价值。

参考技术A 1、APP进入后台,防止被杀死,保持socket链接;
2、socket接收到消息,通过TTS播报处理;

1、实现类似QQ一样的,APP进入后台,可以在锁屏页面继续播放音乐,而这个时候APP是不会被杀死的;
2、APP播放一个静音文件,循环播放;
3、当接收到socket消息时,暂停音乐播放,TTS播报socket消息;
4、TTS播报完毕,继续播放静音文件;
5、禁止掉锁屏页面按钮功能(上一首、下一首、开始、暂停);

处理:通过监听APP进入前/后台,让音乐可以继续播放

iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)

引言

背景:iOS12.1 之后 AVAudioPlayer 无法在后台播放语音。

在杀死APP的情况下唤醒APP,并执行代码的实现方式有Voip 推送和iOS 10新增的Service Extension。

iOS13中(XCode11编译)苹果不再允许PushKit应用在非voip电话的场景上,如果需要使用PushKit的话则需要接入CallKit的接口,导致收到客户端收到Voip Push时会拉起一个接打电话的全屏界面。

在iOS10中推出的Notification Service Extension(NSE),当apns的payload上带上"mutable-content"的值为1时,就会进入NSE的代码中。与Voip方不同之处是,NSE不能唤醒主应用,也不能访问主应用的文件空间,只能在Extension进程中处理相应的逻辑。在NSE中,开发者可以更改通知的内容,利用离线合成或者从后台下载的方式,生成需要播报的内容,通过自定义通知铃声的方式,达到语音播报提醒

以上是关于【iOS】后台播报TTS(防止APP后台被杀死)的主要内容,如果未能解决你的问题,请参考以下文章

iOS app处于后台/被杀死的状态仍可进行语言播报(iOS12.1以上在后台或者被杀死无法语音播报的解决方案)适配iOS15的本地通知功能

iOS App处于后台/被杀死的状态仍可进行语言播报的实现方案( 离线合成+Service Extension)

iOS App处于后台/被杀死的状态仍可进行语言播报的实现方案

iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)

iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)

iOS15 消息推送语言播报修订版(处于后台/被杀死的状态仍可进行语言播报)