2013-03-06 2 views
1

Я использую класс AVAudioRecorder для записи звуков. Можно начать, приостановить, возобновить, остановить звуки записи в одном сеансе AVAudioRecorder. Если приложение закрывается и запускается снова, невозможно возобновить запись до уже существующих аудиофайлов.Запись записи после выхода сеанса AVAudioRecorder

Issues with recording and playing .wav files IOS

Пожалуйста, обратитесь к моему вопросу (просил ранее здесь), чтобы взглянуть на мой код, чтобы инициализировать аудио-рекордер.

Можно ли это сделать? Пожалуйста помоги! Благодаря!

ответ

1

Я думаю, что вам нужно сохранять файлы аудиозаписей отдельно в свой каталог документов каждый раз, когда ваше приложение закрывается, и после запуска приложения микшировать всю аудиозапись как доступную.

Здесь приведен код для смешивания ваших аудиофайлов. В вашем случае вам просто нужно смешать два файла, поэтому вам необходимо использовать код соответственно.

-(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); 
    } 

} 

]; 
} 
+0

Спасибо, я получил его! – user1873452

+0

Но нельзя ли возобновить запись, просто увеличив уже существующий файл? Даже я не мог найти возможности, хотя, просто не пропустить, если таковые имеются. – user1873452

Смежные вопросы