0

ビューにオーディオを録音し、親ビューにポップアウトした後に保存されたオーディオファイルを取得するにはどうすればよいですか?

ストーリーボードに埋め込まれたナビゲーションコントローラーを使用しています。

このコードは子ビューにあります。

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

さて、どうすれば親コントローラーでそれを取得できますか?

4

2 に答える 2

0

オーディオを録音しているViewControllerが1つある場合、そのView Controllerは、オーディオが閉じられる前にオーディオを保存する必要があります。

そして、それを一貫した場所(たとえば、キャッシュディレクトリ、ドキュメントディレクトリなど)に保存する必要があります。また、予測可能なファイル名を指定すると、親のView Controllerで簡単に見つけて、必要なときに再度ロードすることができます。

または、ナビゲーションコントローラーから親ビューコントローラーへのハンドルを取得し、書き出されたオーディオデータ(またはURL)へのパス、または生のオーディオNSDataオブジェクト自体のいずれかを渡すこともできます。それはすべて、コードをどのように実装したかによって異なります。

于 2012-04-27T10:47:31.667 に答える
0

シングルトンオーディオコントローラークラスを作成して録音を行い、そのオーディオコントローラーをオーディオを使用する必要のあるすべてのビューコントローラー(録音、再生など)に渡すことができます。

于 2012-04-27T13:48:49.403 に答える