长时间使用后,AVSpeechSynthesizer停止工作

时间:2017-09-05 15:53:05

标签: session audio speech mute avspeechsynthesizer

我们为简单的导航应用程序实现了语音合成。一切正常,但在极少数情况下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];
    }
}

在执行过程中是否有人遇到类似问题?也许是音频会话的东西?如果是这样,你是如何解决它的?

感谢您提供经验报告和建议。

祝你好运, 迈克尔

0 个答案:

没有答案