Cocoa:将音频附加到现有文件

时间:2014-01-30 14:57:18

标签: objective-c macos cocoa avfoundation nsdata

我的应用程序使用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]; 

当我尝试播放新创建的音频内容时,只播放第一段音频。这是不会起作用的东西,或者这段代码有什么问题吗?

是否有另一种方法可以将音频附加到现有文件中?

1 个答案:

答案 0 :(得分:0)

我能够使用AVMutableComposition实现这一点,如this Apple article所示。