作者RayJiang97
https://www.jianshu.com/p/39bf2b7f45cc
在后台玩
一般流程:
1.使用BDSSpeechSynthesizer的合成呈现方法来合成音频
2.从BDSSpeechSynthesizerDelegate代理的synthesizerNewDataArrived方法获取合成音频
提示:通过这种方法获得的数据是pcm格式的
3.使用蓝牙层播放pcm格式的数据
踩坑总结:
问:为什么我不能直接用BDSSpeechSynthesizer玩
答:如果用下面的代码直接播放,可以回放到后台,但是不能设置锁屏播放器
varerror: NSError?=零
let speaker = bdsspeechsynthesis zer . shared instance()
扬声器?。speak句子(“语音合成”,witherror:&:错误)
问:为什么不能用AVAudioPlayer来播放综合数据到达回调中的数据
答:因为此数据是pcm格式,所以AVAudioPlayer不支持它
问:为什么一个文本合成器会多次调用
答:猜测:当合成的文本比较长的时候,为了合成的更快,会将句子拆分后请求给服务器,所以会被回调几次
重点:synthesizerNewDataArrived会被依次回调几次,至于怎么处理百度演示,你就知道了
焦点:顺序回调
如何设置背景播放
网上有很多教程,这里简单说一下
1.在目标→功能中打开背景模式,检查音频、播放和图片中的图片
2.在应用程序委托的应用程序中将设置主动回调
FuncapplicationWillRestoractive(_ application:ui application){
//允许后台回放
ui application . shared . Beginreceivingremotecontrolevents()
//设置锁屏播放器的数据
MPNowPlayingInfoCenter.default()。nowplayginfo = speakermanager . manage . playginfo
}
3.在AppDelegate中实现锁屏播放器的远程控制接收回调
override func Remote control received(带有事件:UIEvent?) {
guard lete = eventelse{return}
switche.subtype {
case.remoteControlPlay播放:
speakermanager . manage . continue speaking()
case.remoteControlPause暂停:
speakermanager . manage . pausespending()
默认:
打破
}
}
长的
根据
接近
填充
1.《后台播放 iOS-百度语音合成 后台播放》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《后台播放 iOS-百度语音合成 后台播放》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1215559.html