【发布时间】:2016-11-16 06:15:42
【问题描述】:
我想知道有什么方法可以在 iOS 应用程序中录制音频,这样就不会因为我的文件大小达到 GB 而将其保存到任何文件中。
谢谢!!
【问题讨论】:
标签: ios objective-c xcode avaudiorecorder
我想知道有什么方法可以在 iOS 应用程序中录制音频,这样就不会因为我的文件大小达到 GB 而将其保存到任何文件中。
谢谢!!
【问题讨论】:
标签: ios objective-c xcode avaudiorecorder
如果您正在录制音频,这意味着您必须将其保存在某个地方,因为它必须需要一些空间,否则您如何录制?
您可以使用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!
【讨论】:
想象一下你可以——会更好吗?在 RAM 中保留 GB 的数据?.. 听起来很糟糕。
如果你想保持你的磁盘空间空闲,你可以做的是:
1) 将一小部分数据保存到文件中(即 20 MB?)
2) 将此文件发送到后端并在完成时将其从磁盘中删除
3) 重复此过程,直到完成录制
【讨论】: