AVSpeechSynthesizer 代表没有调用 iOS 11
AVSpeechSynthesizer delegates are not calling in iOS 11
这是我的文字转语音代码。 iOS 11 以下一切正常。但在 iOS 11 中未调用委托方法。
AVSpeechSynthesizerDelegate
设置准确。 (因为它在 iOS 11 以下工作)
点击按钮
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
synthesizer.delegate = self;
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:stringToSpeech];
[utterance setRate:AVSpeechUtteranceDefaultSpeechRate];
[utterance setPitchMultiplier:1];
[utterance setVolume:1];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
[synthesizer speakUtterance:utterance];
这些是我实现的委托方法。
-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance {
NSLog(@"finished");
}
-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance{
NSLog(@"Started");
}
有人遇到过这个问题吗?
任何帮助将不胜感激。
我正在 iOS 11.0.3 上测试,Xcode 9.0
您的 synthesizer
对象必须是 属性 才能工作:)。
要么制作你的 AVSpeechSynthesizer
实例,它是 synthesizer
像这样:
@property (strong, nonatomic) AVSpeechSynthesizer *synthesizer;
或者像这样用 readwrite。
@property (readwrite, strong, nonatomic) AVSpeechSynthesizer *synthesizer;
让我知道这是否有效。
这是我的文字转语音代码。 iOS 11 以下一切正常。但在 iOS 11 中未调用委托方法。
AVSpeechSynthesizerDelegate
设置准确。 (因为它在 iOS 11 以下工作)
点击按钮
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
synthesizer.delegate = self;
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:stringToSpeech];
[utterance setRate:AVSpeechUtteranceDefaultSpeechRate];
[utterance setPitchMultiplier:1];
[utterance setVolume:1];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
[synthesizer speakUtterance:utterance];
这些是我实现的委托方法。
-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance {
NSLog(@"finished");
}
-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance{
NSLog(@"Started");
}
有人遇到过这个问题吗? 任何帮助将不胜感激。
我正在 iOS 11.0.3 上测试,Xcode 9.0
您的 synthesizer
对象必须是 属性 才能工作:)。
要么制作你的 AVSpeechSynthesizer
实例,它是 synthesizer
像这样:
@property (strong, nonatomic) AVSpeechSynthesizer *synthesizer;
或者像这样用 readwrite。
@property (readwrite, strong, nonatomic) AVSpeechSynthesizer *synthesizer;
让我知道这是否有效。