如何使用NSTask执行此命令?

时间:2014-03-14 23:25:25

标签: objective-c macos cocoa

我正在尝试执行此任务来录制一些音乐,但我收到错误。我确信这很简单:

sox -V6 -t coreaudio 'WavTap' --bits 16 test.wav

它说'没有这样的档案或目录:wavtap'。

但是,如果我在终端中运行它可以正常工作。我猜猜引起它的引用有什么关系?

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情,虽然我不知道这是否是您已经在做的事情。

NSArray *args = [NSArray arrayWithObjects:@"-V6", @"-t", @"coreaudio", @"'WavTap'", @"--bits", @"16", @"test.wav", nil];
NSTask *task = [[NSTask alloc] init];
@try {
    [task setLaunchPath:pathOfSoxCommand];
    [task setArguments:args];
    [task launch];
}
@catch (NSException *exception) {
    NSLog(@"%@",exception.reason);
}
@finally {
    [task release];
}