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