У меня есть два контроллера представления. Один и Два.
- На oneViewController есть кнопка, которая вызывает TwoViewController с помощью раскадровки - работает нормально
- На TwoViewController есть кнопка, которая читает некоторый текст с помощью кнопки (кнопка прослушивания) - работает нормально
- На TwoViewController есть кнопка «Назад», которая возвращает вас к oneViewController.
Проблема:
если дважды нажать кнопку «Прослушать» и нажать кнопку «Назад», контроллер представления переходит от «Два» к «Один», но речь все еще продолжается в фоновом режиме. Может ли кто-нибудь помочь со способом остановить речь?
Код на TwoViewController:
AVSpeechSynthesizer *synth;
-(IBAction) Back:(id)sender
{
[_synth stopSpeakingAtBoundary: AVSpeechBoundaryImmediate]; --not working
[self dismissViewControllerAnimated:YES completion:nil]; - working fine.
}
-(void) viewDidDisappear:(BOOL)animated
{
[_synth stopSpeakingAtBoundary:AVSpeechBoundaryImmediate]; --not working
[self dismissViewControllerAnimated:YES completion:nil];
}
-(IBAction)listenButton:(id)sender
{
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"I am running a test."];
[utterance setRate:0.18f];
_synth=[[AVSpeechSynthesizer alloc] init];
[_synth speakUtterance:utterance];
}
Примечание. Проблема не возникает, если нажать кнопку «Прослушать» один раз, а затем нажать кнопку «Назад». Проблема возникает только в том случае, если кнопка «Прослушать» нажата несколько раз, а затем нажата кнопка «Назад».