如何在视图中录制音频并在父视图中弹出后获取保存的音频文件?
我在故事板中使用嵌入式导航控制器。
我的孩子视图中有这段代码。
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [dirPaths objectAtIndex:0];
tempFilePath = [NSURL fileURLWithPath:[docsDir stringByAppendingPathComponent:[NSString stringWithFormat: @"record.%@", @"caf"]]];
NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
audioRecorder = [[ AVAudioRecorder alloc] initWithURL:tempFilePath settings:recordSetting error:nil];
[audioRecorder setDelegate:self];
[audioRecorder prepareToRecord];
[audioRecorder record];
现在,我怎么会在我的父控制器中得到它?
答案 0 :(得分:0)
如果您有一个视频控制器录制音频,该视图控制器应在音频被解除之前保存。
您应该将其保存到一致的位置(例如缓存目录,文档目录,等等)。如果你给它一个可预测的文件名,你可以让你的父视图控制器轻松找到它,以便在需要时再次加载它。
或者,您可以从导航控制器获取父视图控制器的句柄,并将路径传递到写出的音频数据(或URL)或原始音频NSData
对象本身。这一切都取决于你如何实现你的代码。
答案 1 :(得分:0)
您可以创建一个单独的音频控制器类来进行录制,并将该音频控制器传递给需要使用音频的每个视图控制器(录制,播放等)