Я пишу приложение, которое позволяет пользователям нажимать кнопку, когда они слышат ссылку на веб-сайт, за которой они хотят следовать.Подождите, пока AVSpeechSynthesiser закончит произносить
Проблема заключается в том, что цикл for, который я использую, добавляет весь текст в список высказываний и не дожидается завершения произнесения до продолжения, что означает, что я не могу сказать, какую ссылку они хотят придерживаться.
У меня есть класс с именем
речи
, который является делегатом AVSpeechSynthesiser и попытались создать свой собственный способ определения того, когда произнесение заключил:
-(id)init {
self = [super init];
if (self) {
_synthesiser = [[AVSpeechSynthesizer alloc]init];
[self setSpeaking:NO];
}
return self;
}
-(void)outputAsSpeech:(NSString *)text
{
[self setSpeaking:YES];
[[self synthesiser]speakUtterance:[[AVSpeechUtterance alloc]initWithString:text]];
}
-(BOOL)isSpeaking
{
return [self speaking];
}
-(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance
{
[self setSpeaking:NO];
}
И в классе
ViewController
-(void)readBookmarks
{
[[self speech]continueSpeech];
[[self speech]outputAsSpeech:@"Bookmarks,"];
for ([self bookmarksPointer]; [self bookmarksPointer] < [[self bookmarks]count]; _bookmarksPointer++) {
NSDictionary* dictionary = [[self bookmarks]objectAtIndex:[self bookmarksPointer]];
[[self speech]outputAsSpeech:[dictionary objectForKey:@"title"]];
while ([[self speech]isSpeaking]) {}
}
}
Идея заключалась в том, что приложение должно ждать, пока произнесение не произошло, а затем продолжить. Но на данный момент он считывает «Закладки» и останавливается, он даже не считывает первую закладку, я также попытался поместить цикл while в начало цикла for.
Может ли кто-нибудь помочь мне, пожалуйста, я был бы очень признателен.
Благодаря
Что происходит, когда вы проходите цикл for? Что такое значение NSDictionary? Как насчет значения objectForKey? –
Они оба получают правильные результаты, я знаю, что он получает правильный текст из каждого NSDictionary. – user3801877