基于APNS的语音播报实践

前言


由于项目需求,对基于APNs的语音播报做一个预研探究。如场景:收到转账消息,实时收到推送并播放语音。

历史方案总结, 经过多方尝试验证,以下方式都已过时

以下方案均为调研过程中无法成功的方案一览;

  • 方案一: App收到推送,通过sound指定播放固定音频(“收到一笔转账”)。前提:mp3\caf\m4a音频文件需要内置在bundle中,推送下发时指定文件名称。缺点:无法根据具体金额播报。

  • 方案二: App在前台收到推送时,通过AVAudioSession 或者 AVSpeechSynthesisVoice播报。缺点:1 App在前台播报时,可以通过音量键调整音量。正常的推送抵达时,音量键或者关机键会即刻中断播放推送声音,所以本方案不是真正的推送音。2 App杀死情况下无法播报。

  • 方案三: 通过通知扩展(Notification Service)播放音频。App通知扩展收到推送时,调用AVAudioSession 或者 AVSpeechSynthesisVoice 播报。可能在通知扩展刚推出的时是允许这种做法的。但现在苹果已经不支持在通知扩展中播放音频,即使调用相关函数也不会生效。

  • 方案四: 通过通知扩展(Notification Service)发送本地通知播报。App通知扩展收到推送时,顺序创建多个本地通知,每个通知都播放内置音频,从而组成一句完整的播报音频。缺点:1 苹果已不支持在通知扩展发送本地通知。2 播放推送音频时,音量键或者关机键 会中断当前本地通知的音频播放。

  • 方案五:基于VOIP的语音播报,iOS13之后苹果对VOIP做了很大的限制,必须配合CallKit使用,否则收到VOIP推送后直接中断crash,没有机会再做更多事情了。

</

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值