2014-01-30 1 views
1

내 응용 프로그램은 AVFoundation 프레임 워크를 사용하여 오디오를 녹음합니다. 처음으로 사용자가 오디오를 녹음하면 매력처럼 작동합니다. 그러나 사용자가 추가 오디오를 녹음하면이 오디오를 기존 파일의 끝에 추가하고 싶습니다. 나는 이것을하는 방법을 이해할 수 없다. 나는 기존을 NSData에있는 NSData 자체를 추가 단순히 시도했지만,이 작동하지 않습니다 코코아 : 기존 파일에 오디오 추가

NSError *error; 
//This is the newly recorded second bit of audio saved to a temp file. 
NSData *data = [NSData dataWithContentsOfFile:tempInputFilePath options:0 error:&error]; 

//Here I get out the old audio data that I have saved. 
NSMutableData *mData = [fileBrowserVC.currentlySelectedFile.audioContent mutableCopy]; 
NSLog(@"%lu",(unsigned long)mData.length); 
if (mData==nil) { 
    mData = [[NSMutableData alloc] init]; 
} 


[mData appendData:data]; 
NSLog(@"%lu",(unsigned long)mData.length); 

fileBrowserVC.currentlySelectedFile.audioContent = mData; 
[[AppDelegate sharedDelegate] saveAction:nil]; 

내가 새로 만든 오디오 콘텐츠를 재생하려고

은, 오디오의 첫 번째 조각이 재생됩니다. 이 코드가 제대로 작동하지 않거나이 코드에 문제가 있습니까?

기존 파일에 오디오를 추가하는 다른 방법이 있습니까?

+0

대부분의 오디오 형식은 헤더의 데이터 길이를 바이트 단위로 추적합니다. 이렇게하면 데이터를 추가하는 경우에만 첫 번째 비트 만들을 수 있습니다. – Volker

답변

0

this Apple article과 같이 AVMutableComposition을 사용하여이 작업을 수행 할 수있었습니다.