2017-10-13 2 views
1

다음은 TTS (text-to-speech) 코드입니다. 모든 것이 iOS 11 아래에서 잘 작동합니다. 그러나 iOS 11에서는 위임 메소드가 호출되지 않습니다.AVSpeechSynthesizer 대리자가 iOS 11에서 호출하지 않습니다.

AVSpeechSynthesizerDelegate이 정확하게 설정되어 있습니다. 버튼 탭

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]; 

(이 아이폰 OS 11 이하로 작동되기 때문에)이 내가 구현 한 대의원 방법이 있습니다.

-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance { 
    NSLog(@"finished"); 
} 

-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance{ 
    NSLog(@"Started"); 
} 

누군가이 문제에 직면 했습니까? 도움이 될 것입니다. 귀하의 synthesizer 목적은 : 그 일을 할 수있는 재산이어야 엑스 코드 9.0

답변

2

와 나는 아이폰 OS 11.0.3에서 테스트 해요

.

어느

그래서 같은 synthesizer 당신의 AVSpeechSynthesizer 인스턴스를 만들 :
@property (strong, nonatomic) AVSpeechSynthesizer *synthesizer; 

또는 READWRITE이 같은

.

@property (readwrite, strong, nonatomic) AVSpeechSynthesizer *synthesizer; 

이 기능이 작동하는지 알려주세요.

+0

나는 이것을 시도 했어야했다. 감사 ! 그것은 일한 –

+0

@MZubairShamshad 위에서 언급 한 2 가지 유형 중 어떤 유형의 사용이 문제를 해결 했습니까? –

+0

@AanchalChaurasia'@property (강하고 비 구조) AVSpeechSynthesizer * 신디사이저; 나를 위해 작동했습니다. –

관련 문제