录音回放
1 - (IBAction) record:(id)sender
2 {
3
4 NSError *error = nil;
5 BOOL b = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:&error];
6 [[AVAudioSession sharedInstance] setDelegate:self];
7 if(b){
8 NSLog(@"set audio session category record victory%d",b);
9 }else {
10 NSLog(@"error=================%@",error);
11 }
12 b = [[AVAudioSession sharedInstance] setActive:YES error:&error];
13 if(b){
14 NSLog(@"set active yes %d",b);
15 }else {
16 NSLog(@"error=================%@",error);
17 }
18 NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"voice.caf"];
19 //NSLog(@"filePath=========================%@",filePath);
20 self.recordFileName = filePath;
21 NSURL *url = [NSURL fileURLWithPath:filePath];
22
23 AVAudioRecorder *recorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];
24 mRecorder = recorder;
25 [recorder setDelegate:self];
26 [recorder prepareToRecord];
27
28 recorder.meteringEnabled = YES;
29
30 BOOL audioHWAvailable = [[AVAudioSession sharedInstance] inputIsAvailable];
31
32 // start recording
33 [recorder recordForDuration:(NSTimeInterval) 3];
34 }
播放相对简单:
1 - (IBAction) play:(id)sender
2 {
3 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
4 AVAudioSession *audioSession = [AVAudioSession sharedInstance];
5 [[AVAudioSession sharedInstance] setDelegate:self];
6 NSError *error = nil;
7 BOOL b = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
8 // if(b){
9 // NSLog(@"====================%d",b);
10 // }else {
11 // NSLog(@"error=================%@",error);
12 // }
13
14 b = [audioSession setActive:YES error:&error];
15 // if(b){
16 // NSLog(@"====================%d",b);
17 // }else {
18 // NSLog(@"error=================%@",error);
19 // }
20
21 NSURL *url = [NSURL fileURLWithPath:self.recordFileName];
22 //NSLog(@"url============================%@",url);
23 AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
24 player.meteringEnabled = YES;
25 player.volume = 1.0;
26 player.delegate = self;
27 [player prepareToPlay];
28 [player play];
29 [pool release];
30 }