我正在尝试制作一个 Mac 应用程序,它 NSTextField
使用“系统”说出用户输入的文本以say
在终端中使用命令。但是,Xcode 不断报错。
- (IBAction)speak:(id)sender{
system("say %@", [textinput stringValue]);
}
*textinputIBOutlet
是NSTextField
.
我正在尝试制作一个 Mac 应用程序,它 NSTextField
使用“系统”说出用户输入的文本以say
在终端中使用命令。但是,Xcode 不断报错。
- (IBAction)speak:(id)sender{
system("say %@", [textinput stringValue]);
}
*textinputIBOutlet
是NSTextField
.
System 将单个 char* 作为参数,因此您必须先格式化命令字符串,然后才能将其传递给系统:
- (IBAction)speak:(id)sender {
NSString *command = [NSString stringWithFormat:@"say %@", [textinput stringValue]];
system([command UTF8String]);
}
无需调用系统命令,直接使用Cocoa语音合成API即可。例如
NSSpeechSynthesizer* speechSynthesizer = [[NSSpeechSynthesizer alloc] init];
[speechSynthesizer startSpeakingString:[textinput stringValue]];
然后很容易设置声音并调整其他设置。