NSSpeechSynthesizer not calling delegate methods

Joined
Nov 9, 2011
Messages
1
Reaction score
0
Points
1
Anybody had any luck using an NSSpeechSynthesizerDelegate? None of my delegate messages are being called. Here's the code:

Code:
//  main.m

#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>

@interface SynthesizerDelegate : NSObject <NSSpeechSynthesizerDelegate>
@end

@implementation SynthesizerDelegate
- (void)speechSynthesizer:(NSSpeechSynthesizer *)sender willSpeakWord:(NSRange)characterRange ofString:(NSString *)string {
  printf("speaking word ");
  printf("%s \n", [[string substringWithRange:characterRange] UTF8String]);
}
- (void)speechSynthesizer:(NSSpeechSynthesizer *)sender didFinishSpeaking:(BOOL)finishedSpeaking {
  printf("finished speaking\n");
}
@end

int main (int argc, const char * argv[])
{
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  
  NSString *input = @"I am not an animal. I am a man.";
  
  NSSpeechSynthesizer *synthesizer = [[NSSpeechSynthesizer alloc] init];
  SynthesizerDelegate *delegate = [[SynthesizerDelegate alloc] init];
  [synthesizer setDelegate:delegate];
  
  [synthesizer startSpeakingString:input];
  
  while ([synthesizer isSpeaking]) {
    sleep(1);
  }
  
  [synthesizer release];
  [delegate release];
  
  [pool drain];
  return 0;
}
 

Shop Amazon


Shop for your Apple, Mac, iPhone and other computer products on Amazon.
We are a participant in the Amazon Services LLC Associates Program, an affiliate program designed to provide a means for us to earn fees by linking to Amazon and affiliated sites.
Top