iOS 语音合成支持后台和锁屏情况

本文介绍了如何使用AVSpeechSynthesizer在iOS应用中实现语音合成,包括后台和锁屏状态下的播报。通过设置AVAudioSessionCategoryPlayback,确保在后台和锁屏时仍能继续播报。此外,还分享了AVSpeechUtterance的各种属性,如文本、语速和语言设置,以及不同AVAudioSessionCategory的区别。
摘要由CSDN通过智能技术生成

最近有一个需求,就是要加入语音合成,并能够在进入后台或者锁屏之后能够播报,现在最流行的应该就是科大讯飞了,功能强大,用起来简单,但是如果只要简单的TTS功能就没有必要集成其他的SDK了,iOS中提供好的API就可以了。

AVSpeechSynthesizer

这个类可以用来播放一个或者多个语音内容,播放的语音内容都是通过实例化AVSpeechUtterance而得到,对于一个或者多个AVSpeechUtterance实例,AVSpeechSynthesizer对象起到队列的作用,提供了API可以控制和监视正在进行的语音播放,首先引入头文件:

#import <AVFoundation/AVFoundation.h>

创建AVSpeechSynthesizer:

AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc] init];

播放合成语音的相关方法:

- (void)speakUtterance:(AVSpeechUtterance *)utterance;

AVSpeechSynthesizerDelegate协议的监听方法:

@optional
// 播放开始状态
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance;
// 播放结束状态
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance;
// 播放暂停状态
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didPauseSpeechUtterance:(AVSpeechUtterance *)utterance;
// 跳出播放状态
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didContinueSpeechUtterance:(AVSpeechUtterance *)utterance;
// 退出播
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值