2010-10-28 3 views
1

У меня есть следующий метод делегата для NSSpeechSynthesizer:Метод делегата NSSpeechSynthesizer всегда сообщает об ошибке, но какой?

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

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

ответ

3

Использование NSSpeechSynthesizer? Нет. С помощью диспетчера синтеза речи? Конечно!

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

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

Смежные вопросы