我们为简单的导航应用程序实现了语音合成。一切正常,但在极少数情况下AVSpeechSynthesizer在长时间使用后停止工作(或以某种方式静音),即使在测试期间没有留下应用程序。
以下是主要代码段。很简单。
- (void)initSpeech
{
self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
self.speechSynthesizer.delegate = self;
}
- (void)speakText:(NSString *)text languageCode:(NSString *)languageCode;
{
if (! [NSString isNilOrEmpty:text] && ! [NSString isNilOrEmpty:languageCode])
{
if ([self isSpeaking])
{
[self stopSpeaking];
}
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:text];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:[MCSpeechSynthesizer BCP47LanguageCodeFromISO681LanguageCode:languageCode]];
utterance.postUtteranceDelay = 0.2f;
[self.speechSynthesizer speakUtterance:utterance];
}
}
在执行过程中是否有人遇到类似问题?也许是音频会话的东西?如果是这样,你是如何解决它的?
感谢您提供经验报告和建议。
祝你好运, 迈克尔