NSArray *dirPaths;
NSString *docsDir;

dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];

// Path of Record Audio
NSString *soundFilePath = [docsDir stringByAppendingPathComponent:@"sound.caf"];
NSURL *soundFileUrl = [NSURL fileURLWithPath:soundFilePath];

// Asset for Record Audio
AVURLAsset *recordAsset = [AVURLAsset URLAssetWithURL:soundFileUrl options:nil];

// Asset for Mix Audio
AVURLAsset *mixAsset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"mix-audio" ofType:@"m4a"]] options:nil];

// Mix
AVMutableComposition *mixComposition = [[AVMutableComposition alloc] init];
AVMutableCompositionTrack *recordTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[recordTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, recordAsset.duration) ofTrack:[[recordAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];
AVMutableCompositionTrack *mixTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[mixTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, recordAsset.duration) ofTrack:[[mixAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];

NSString *outputPath =  [docsDir stringByAppendingPathComponent:@"final-output.m4a"];

// Export
AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:mixComposition presetName:AVAssetExportPresetAppleM4A];
exporter.outputURL = [NSURL fileURLWithPath:outputPath];
exporter.outputFileType = AVFileTypeAppleM4A;

[exporter exportAsynchronouslyWithCompletionHandler:^{
    // Export Finished
}];

// Exporting Progress
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateMixingProgress:) userInfo:exporter repeats:YES];

[mixComposition release];
[exporter release];