Метод делегата NSSpeechSynthesizer всегда сообщает об ошибке, но какая именно? - PullRequest
1 голос
/ 29 октября 2010

У меня есть следующий метод делегата для NSSpeechSynthesizer:

- (void) speechSynthesizer:(NSSpeechSynthesizer *)sender didFinishSpeaking:(BOOL) success {
    NSLog(@"Finished correctly = %d", success);
    [startButton setEnabled:YES];
    [stopButton setEnabled:NO];
}

Параметр «success» всегда НЕТ, хотя я все прекрасно слышал.Есть ли способ получить больше информации и узнать точно что пошло не так?

1 Ответ

3 голосов
/ 29 октября 2010

Используя NSSpeechSynthesizer?Нет. Используя менеджер синтеза речи?Конечно!

/* Created earlier: SpeechChannel chan; */
NSDictionary *errorInfo = nil;
OSErr err = CopySpeechProperty(chan, kSpeechErrorsProperty, (CFTypeRef *)&errorInfo);
[errorInfo autorelease];

Вы также можете настроить обработчики ошибок для всех видов ошибок.См. Пример синтеза речи какао для демонстрации того, как использовать Менеджер синтеза речи.Хотя это Carbon API, похоже, что он все еще доступен для 64-битных приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...