AVAudioRecorder:我们可以录制而不保存到文件中吗?

时间:2016-11-16 06:15:42

标签: ios objective-c xcode avaudiorecorder

我想知道我们是否可以在iOS应用中录制音频,这样就不会将其保存到任何文件中,因为我的文件大小已达到GB。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您正在录制音频,这意味着您必须将其保存在某个地方,因为它必须有一些空间,否则您将如何录制?

您可以使用NSTemporaryDirectory保存文件,例如

    NSString *folderPath = NSTemporaryDirectory();



    NSString *soundFilePath = [folderPath
                               stringByAppendingPathComponent:[NSString stringWithFormat: @"%.0f%@", [NSDate timeIntervalSinceReferenceDate] *1000.0, @"audio.caf"]];

    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];

    NSLog(@"Using File called: %@",soundFileURL);

    audioRecorder = [[ AVAudioRecorder alloc] initWithURL:soundFileURL settings:recordSetting error:&error];
    [audioRecorder setDelegate:self];
    [audioRecorder prepareToRecord];

上面是代码片段,以便您了解!

ios会在需要时自动清除NSTemporaryDirectory,因此您不必担心。是的,你必须将录制的音频存储在某个地方,如果你想永久保存它!

您可以创建自己的目录,该目录可以作为temp directory使用,您可以在需要时手动清除! (在那里的文档目录记录文件中创建目录,并在完成任务时将其清除)

But you can't record without storing it!

答案 1 :(得分:0)

想象一下你可以 - 它会更好吗?将GB数据保存在RAM中?听起来很糟糕。

如果您想保留磁盘空间,您可以做的是:

1)将一小部分数据保存到文件中(即20 MB?)

2)将此文件发送到后端并在完成时从磁盘中删除

3)重复处理直至完成录制