Я думаю, что вам нужно сохранять файлы аудиозаписей отдельно в свой каталог документов каждый раз, когда ваше приложение закрывается, и после запуска приложения микшировать всю аудиозапись как доступную.
Здесь приведен код для смешивания ваших аудиофайлов. В вашем случае вам просто нужно смешать два файла, поэтому вам необходимо использовать код соответственно.
-(void)mixAudios
{
//mix all audio files
AVMutableComposition* mixComposition = [AVMutableComposition composition];
AVMutableCompositionTrack *compositionCommentaryTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
for (number of your recordings)
{
AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:[NSURL URLWithString:@"** Recording file Path **"] options:nil];
if(![compositionCommentaryTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, audioAsset.duration) ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:CMTimeMake(Start time in seconds for each Recoring,1) error:nil])
{
NSLog(@" error: %@"error);
}
}
//save mixed composition as file
AVAssetExportSession* _assetExport = [[AVAssetExportSession alloc] initWithAsset:mixComposition
presetName:AVAssetExportPresetPassthrough];
NSString* videoName = @".mov";
NSString* videoPath = [[NSString alloc] initWithFormat:@"%@/%@", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0], videoName];
NSString *exportPath = [NSTemporaryDirectory() stringByAppendingPathComponent:videoName];
if([[NSFileManager defaultManager] fileExistsAtPath:exportPath])
{
[[NSFileManager defaultManager] removeItemAtPath:exportPath error:nil];
}
NSURL *exportUrl = [NSURL fileURLWithPath:exportPath];
_assetExport.outputFileType = @"com.apple.quicktime-movie";
_assetExport.outputURL = exportUrl;
_assetExport.shouldOptimizeForNetworkUse = YES;
[_assetExport exportAsynchronouslyWithCompletionHandler:
^(void)
{
[_assetExport release];
NSString *path = [NSString stringWithString:[exportUrl path]];
if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (path)) {
UISaveVideoAtPathToSavedPhotosAlbum (path, nil, nil, nil);
}
}
];
}
Спасибо, я получил его! – user1873452
Но нельзя ли возобновить запись, просто увеличив уже существующий файл? Даже я не мог найти возможности, хотя, просто не пропустить, если таковые имеются. – user1873452