Yosemite NSSpeechSynthesizer isSpeaking initially returns NO
| Originator: | peter | ||
| Number: | rdar://18536310 | Date Originated: | 2014-10-03 |
| Status: | Open | Resolved: | |
| Product: | OS X | Product Version: | Yosemite 10.10 GM |
| Classification: | UI/Usability | Reproducible: | Most Always |
In Yosemite, immediately after calling NSSpeechSynthesizer startSpeakingString, isSpeaking returns NO. After a while, it changes to YES, and then eventually changes back to NO. Clearly, it should be YES immediately, otherwise you have unavoidable race conditions to deal with. NSSpeechSynthesizer* synth = [[NSSpeechSynthesizer alloc] init]; [synth startSpeakingString:@"Hello There"]; NSLog( @"isSpeaking is %d", [synth isSpeaking] ); Note there is a race condition here already, so while I've said "Always", and in my experiments, for the default voice Alex, it will always show 0 in the log, its possible that on a slow Mac or on other conditions, it would start showing true before the NSLog ran. And indeed, depending on the voice, it may show YES sooner. Always, immediately after calling startSpeakingString, the result should be YES, and should only go NO when the speaking has finished.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!