【问题标题】:Creating and getting saved audio data from child view - iOS从子视图创建和获取保存的音频数据 - iOS
【发布时间】:2012-04-27 10:45:06
【问题描述】:

如何在视图中录制音频并在父视图中弹出后获取保存的音频文件?

我在故事板中使用嵌入式导航控制器。

我的子视图中有这段代码。

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];

现在,我要如何在我的父控制器中获取它?

【问题讨论】:

  • 我是否记录了这项权利并将其保存到文档中?

标签: ios ios5 core-audio


【解决方案1】:

如果您有一个视图控制器录制音频,则该视图控制器应该在音频被关闭之前保存它。

并且您应该将其保存到一致的位置(例如缓存目录、文档目录等)。如果你给它一个可预测的文件名,你可以让你的父视图控制器轻松找到它,以便在需要时再次加载它。

或者,您可以从导航控制器获取父视图控制器的句柄,并传递写入输出音频数据(或 URL)的路径,或原始音频 NSData 对象本身。这完全取决于您如何实现代码。

【讨论】:

  • 感谢@Michael 的回答。我明白你的意思。如何在父视图中获取上述代码后的文件路径?
  • 在上面添加的代码中,看起来您正在将音频写入 Documents 目录中名为“record.caf”的文件。只需从父视图控制器中的同一位置加载音频数据(即,如果文件存在并且可以从中加载),您应该一切就绪。
  • NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docsDir = [dirPaths objectAtIndex:0]; NSString *tempFilePath = [NSURL fileURLWithPath:[docsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"record.%@", @"caf"]]]; NSURL *url = [[NSURL alloc] initWithString:tempFilePath]; NSError *错误; AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; [audioPlayer setDelegate:self]; [音频播放器播放];当我尝试在父母中玩时仍然出现错误。
【解决方案2】:

您可以创建一个单例音频控制器类来进行录制,并将该音频控制器传递给需要使用音频(录制、播放等)的每个视图控制器

【讨论】:

  • 我想保存音频并稍后将其附加到电子邮件中。我在录音和播放方面没有任何问题。如何做到这一点?
猜你喜欢
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 2018-05-16
  • 2010-11-23
相关资源
最近更新 更多