View Single Post
skot

 
Member Since: Nov 09, 2011
Posts: 1
skot is on a distinguished road

skot is offline
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;
}
QUOTE Thanks