2015-02-05 2 views
-1

앱이 말하기를 마치기 전까지는 사용자와의 상호 작용을 비활성화해야합니다. 아래 예제 코드를 참조하십시오.목표 C : 단어 말하기가 끝날 때까지 AVSpeechSynthesizer를 기다립니다.

self.view.userInteractionEnabled = NO; 
[self speak :@"wait for me to speak"]; 
self.view.userInteractionEnabled = YES; 

-(void)speak:(NSString*)word 
{ 
    AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:word]; 
    utterance.rate = AVSpeechUtteranceMinimumSpeechRate; 
    utterance.rate = 0.2f; 
    utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage 
    [AVSpeechSynthesisVoice currentLanguageCode]]; 
    [synthesizer speakUtterance:utterance]; 
} 

답변

1

델리게이트 (AVSpeechSynthesizerDelegate)를 사용하십시오. 연설이 끝났을 때 알려주므로 사용자 상호 작용을 다시 활성화하십시오.

+0

매트 작품에 감사 드리며 강력한 패턴입니다. :) – moufkir