当应用程序变为后台时,我的日志中会显示以下消息:
AVSpeechSynthesizer Audio interruption notification: { AVAudioSessionInterruptionTypeKey = 1;}
我在singleton的init方法中初始化了AVSpeechSynthesizer:
self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init]; self.speechSynthesizer.delegate = self;
我说这样的话语:
AVSpeechUtterance *utt = [[AVSpeechUtterance alloc] initWithString:dialogue];utt.voice = [AVSpeechSynthesisVoice voiceWithLanguage:voice];utt.pitchMultiplIEr = pitch;utt.rate = rate;utt.preUtteranceDelay = preDelay;utt.postUtteranceDelay = postDelay;utt.volume = volumeSetting;[self.speechSynthesizer speakUtterance:utt];
iOS 8上有没有人见过这样的东西?
解决方法 我整天都在追逐这种疯狂,我想我找到了解决办法.我的问题是,AVSpeechSynthesizer在前台和后台工作正常,可以正常播放其他音频,直到通话结束.那一刻,说话会默默地停止工作,没有任何错误.所有对象仍然存在,但委托调用不会被调用,无论是开始还是完成.
我注意到通过电话,我的应用程序会收到有关AudioRouteChanged的通知.因此,当发生这种情况时,我会重新创建语音设置:基本上销毁现有的AVSpeechSynthesizer并重新创建它.从那时起,演讲将继续发挥作用.它甚至可以在通话期间工作:)
总结以上是内存溢出为你收集整理的ios – AVSpeechSynthesizer在后台运行后停止工作全部内容,希望文章能够帮你解决ios – AVSpeechSynthesizer在后台运行后停止工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)