0
我需要使用NSTask按顺序运行多个命令,并且想知道如果一个任务已经完成,这将是一个好方法,因此我可以继续下一个命令。我使用“sox”(包括在我的应用程序包中)使用输入音频文件创建临时音频文件,然后需要将这些临时音频文件合并到一个文件中。 )连续运行多个NSTask
:处理流程的例子(不是实际的命令)1)SONGA> TEMPA
2歌曲B> tempB
3)结合TEMPA tempB> songC
我正在使用以下代码来完成第一条命令:
NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"songA", @"-f", @"-S", @"-G", @"-V", @"-b", @"24", @"-r", @"384k", @"tempA", nil];
NSString *path=[[NSBundle mainBundle] pathForResource:@"sox" ofType:nil];
NSTask *task;
task = [[NSTask alloc] init];
[task setStandardInput:[NSPipe pipe]];
[task setLaunchPath:path];
[task setArguments: arguments1];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSString *string;
string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog (@"stuff :\n%@", string);
[string release];
[task release];
说明我需要在完成这一步之后再执行两个NSTask进程(使用先前进程的输出),检测一个进程已完成以便继续进行下一步的最佳方法是什么?
谢谢。
应该调用哪个方法? – Mashhadi 2013-03-04 15:04:19
在那里,你想等待任务完成。在互联网上寻找很多例子,例如http://cocoadev.com/wiki/NSTask – jm666 2013-03-07 09:27:26