1

我正在尝试制作一个 Mac 应用程序,它 NSTextField使用“系统”说出用户输入的文本以say在终端中使用命令。但是,Xcode 不断报错。

- (IBAction)speak:(id)sender{
    system("say %@", [textinput stringValue]);
}

*textinputIBOutletNSTextField.

4

2 回答 2

4

System 将单个 char* 作为参数,因此您必须先格式化命令字符串,然后才能将其传递给系统:

- (IBAction)speak:(id)sender {
    NSString *command = [NSString stringWithFormat:@"say %@", [textinput stringValue]];
    system([command UTF8String]);
}
于 2012-08-25T09:46:59.960 回答
3

无需调用系统命令,直接使用Cocoa语音合成API即可。例如

NSSpeechSynthesizer* speechSynthesizer = [[NSSpeechSynthesizer alloc] init];
[speechSynthesizer startSpeakingString:[textinput stringValue]];

然后很容易设置声音并调整其他设置。

于 2012-08-25T14:14:36.587 回答