iOS - 将录制内容保存到应用文档

时间:2012-02-15 15:28:23

标签: iphone objective-c ios xcode cocoa-touch

我想将录制的文件保存到我的应用文档中,但无法弄清楚如何操作。我做了一个录音,它存储在一个临时文件中,我可以播放那个声音。现在,当我离开该视图时,我想以新名称将该文件保存到应用程序文档中。

录制声音的代码:

NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [dirPaths objectAtIndex:0];
NSString *soundFilePath = [docsDir
                               stringByAppendingPathComponent:@"tmpSound.caf"];

tempRecFile = [NSURL fileURLWithPath:soundFilePath];

NSDictionary *recSettings = [NSDictionary 
                                    dictionaryWithObjectsAndKeys:
                                    [NSNumber numberWithInt:AVAudioQualityMin],
                                    AVEncoderAudioQualityKey,
                                    [NSNumber numberWithInt:16], 
                                    AVEncoderBitRateKey,
                                    [NSNumber numberWithInt: 2], 
                                    AVNumberOfChannelsKey,
                                    [NSNumber numberWithFloat:44100.0], 
                                    AVSampleRateKey,
                                    nil];

recorder = [[AVAudioRecorder alloc] initWithURL:tempRecFile settings:recSettings error:nil];
[recorder setDelegate:self];
[recorder prepareToRecord];
[recorder record];

是否有人知道如何做到这一点,或者甚至可以做到这一点?

2 个答案:

答案 0 :(得分:1)

使用NSFileManager移动文件。

答案 1 :(得分:1)

您应该可以使用以下内容执行此操作:

NSError *error;
[[NSFileManager defaultManager] copyItemAtURL:tempRecFile toURL:newURL error:&error];

或者如果您不关心错误:

[[NSFileManager defaultManager] copyItemAtURL:tempRecFile toURL:newURL error:nil];

尽管有一个警告 - 您应该仔细考虑是否确实需要将此音频保存在文档文件夹中,或者如果caches文件夹就足够了。 Apple对允许的内容有严格的规定。