我有一个小程序,允许您在文本字段中键入字符串,然后让计算机说出文本。如果你愿意,你也可以阻止它。
此 代码:
- (void)speechSynthesizer:(NSSpeechSynthesizer *)sender didFinishSpeaking:(BOOL)finishedSpeaking
{
NSLog(@"Complete = %d", finishedSpeaking);
[stopButton setEnabled:NO];
[startButton setEnabled:YES];
[speakLineTableView setEnabled:YES];
}
如果说出整个字符串,则打印'1',否则打印'0'。
添加了以下代码以允许用户选择说话语音:
- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
NSUInteger row = [speakLineTableView selectedRow];
if (row == -1)
{
return;
}
NSString *selectedVoice = [speakLineVoiceList objectAtIndex:row];
// The next line causes 'finishedSpeaking' to return 0 first time
// through. If you play it again, it returns 1 which is correct.
[speechSynth setVoice:selectedVoice];
NSLog(@"New voice = %@", selectedVoice);
}
在'setVoice'行中,当你第一次要求程序说话时,它会以'0'结束,第二次是'1',这是正确的。随着它注释它正常工作,当然你不能改变声音。 '1'或'0'不用于任何东西,所以我可以忽略结果,但它告诉我通知消息没有正确执行。任何人都知道为什么会发生这种情况以及如何解决它?
由于