美文网首页专注iOS开发iOS关联点
iOS app 语音播报功能实现

iOS app 语音播报功能实现

作者: masuyan | 来源:发表于2017-05-26 18:06 被阅读787次

需求:
用户扫描商户二维码付款成功或退款成功后,APP收到相应收退款通知并将通知内容语音播报出来。
分析:
情形一:应用未打开过,无法进行语音播报。
情形二:应用打开并在前台工作,收到通知语音播报。
情形三:应用打开后进入后台或锁屏状态,收到通知语音播报。

语音播放实现:
选用科大讯飞语音合成在线版SDK (免费)或 iOS 系统TTS(iOS 7.0及以上);
代码实现:
对于情形三,目前成功的处理方案:
根据苹果对于应用后台运行的解释,进行如下的配置
https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH4-SW1

1、在info.plist中添加Backgroud Modes ,申请后台音频和后台通知的权限,后台通知为静默通知,服务器推送添加参数content-available: 1才有效,iOS代理方法:


无标题.png 无标题1.png

2、开启后台任务:
当应用挂起,启动一个后台任务,为了让任务长时间运行,添加了一个三分钟播报一个音量为0的语音,用以维持后台状态,应用进入前台则停止后台任务。

1.png
2.png

3.经测试:
后台工作对电池的消耗很低,能正常接收通知并语音播报,但对于后续上AppStore时是否能过审还不确定。

相关文章

网友评论

  • Superman168:我现在用科大讯飞将文字合成语音,然后播报,在前台可以正常使用,但当程序退到后台,语音播报就消失了,等到前台了就接着上次的播报,请问该怎么解决!有什么有效的解决方法吗?
  • 春田花花幼儿园:作者你好. 这个方法你们现在上架了吗?
    masuyan:@春田花花幼儿园 没有上APP store 是用的企业分发的形式进行的发包
    春田花花幼儿园:@dada要学习 还没上架
    DaDaCool:你有没有找到可以上架的什么好的方法?
  • 友情或许更可靠:现在除了这种在后台播放无声的音乐意外,还有别的办法吗? 需求是 只要有推送来就能语音播报
    masuyan:@星际旅途 请确认下是手机硬件声音开关没有开 或 代码中设置了声音为0
    masuyan:@友情或许更可靠 目前没有发现其他方法呢,如果你有什么新方法,期待你的共享
    凤起梧桐:请问找到解决办法了吗,我们也要求后台接到推送通知播报语音。我用的系统的但是没有声音。
  • HHLM:你好 我什么我的就是不行了 ,播报的方法走了 就是么有声音
    凤起梧桐:@HHLM 请问你是怎么实现的,我用的也是苹果的语音,但是执行了代码没有声音
    HHLM:@masuyan 谢谢 搞定了 ,我用的是苹果系统的语音播报
    masuyan:@HHLM 你好,是不是因为手机系统声音为静音 ,如果不是静音 设置音量 [_iFlySpeechSynthesizer setParameter:@"50" forKey: [IFlySpeechConstant VOLUME]];看是否有声音

本文标题:iOS app 语音播报功能实现

本文链接:https://www.haomeiwen.com/subject/zlmxfxtx.html