我正在尝试使用 QTKit 将两个 .mp3 组合成一个 .wav 文件。它似乎正在工作,但第二个文件的最后几秒钟被截断了。有任何想法吗?
- (IBAction)combineSelectedFilesAndOutputAsWAV {
QTMovie *movie = [QTMovie movieWithFile:fileOne error:NULL];
[movie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
QTMovie *segmentTwo = [QTMovie movieWithFile:fileTwo error:NULL];
QTTimeRange range = { .time = QTZeroTime, .duration = [segmentTwo duration] };
[segmentTwo setSelection:range];
[movie appendSelectionFromMovie:segmentTwo];
while([[movie attributeForKey:QTMovieLoadStateAttribute] longValue] != 100000L) {
//wait until QTMovieLoadStateComplete
}
NSDictionary *exportAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], QTMovieExport,
[NSNumber numberWithLong:kQTFileTypeWave], QTMovieExportType, nil];
NSString *outputFile = [NSString stringWithFormat:@"%@.wav", outputFilename];
NSString *filepath = [destinationDirectory stringByAppendingPathComponent:outputFile];
if (![movie writeToFile:filepath withAttributes:exportAttributes]) {
//ERROR
}
}
(忽略等待 QTMovieLoadStateComplete 的 while 循环。我将来会切换到使用通知。但现在,它应该没关系......)