【问题标题】:AVAudioRecorder : Can we record without saving into file?AVAudioRecorder : 我们可以在不保存到文件的情况下录制吗?
【发布时间】:2016-11-16 06:15:42
【问题描述】:

我想知道有什么方法可以在 iOS 应用程序中录制音频,这样就不会因为我的文件大小达到 GB 而将其保存到任何文件中。

谢谢!!

【问题讨论】:

    标签: ios objective-c xcode avaudiorecorder


    【解决方案1】:

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

    您可以使用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];
    

    上面是sn-p的代码,让你明白!

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

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

    But you can't record without storing it!

    【讨论】:

      【解决方案2】:

      想象一下你可以——会更好吗?在 RAM 中保留 GB 的数据?.. 听起来很糟糕。

      如果你想保持你的磁盘空间空闲,你可以做的是:

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

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

      3) 重复此过程,直到完成录制

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 2013-01-14
        • 2020-02-20
        • 1970-01-01
        • 2021-11-21
        • 2018-02-18
        • 2013-06-11
        相关资源
        最近更新 更多