#pragma mark - 录音touch事件
- (void)beginRecordVoice:(UIButton *)button{
_audioSession = [AVAudioSession sharedInstance];
[_audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:nil];
[_audioSession setActive:YES error:nil];
/*这段录的时候会有噪音*/
// NSDictionary *recordSetting = @{AVEncoderAudioQualityKey : [NSNumber numberWithInt:AVAudioQualityMin],
// AVEncoderBitRateKey : [NSNumber numberWithInt:16],
// AVFormatIDKey : [NSNumber numberWithInt:kAudioFormatLinearPCM],
// AVNumberOfChannelsKey : @2,
// AVLinearPCMBitDepthKey : @8
// };
/*这段录的时候就好多了,基本没有*/
NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithFloat: 44100.0], AVSampleRateKey,
[NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
[NSNumber numberWithInt: 2], AVNumberOfChannelsKey,
[NSNumber numberWithInt: AVAudioQualityMax], AVEncoderAudioQualityKey,
nil];
NSError *error = nil;
NSString *docments = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
_docmentFilePath = [NSString stringWithFormat:@"%@/%@",docments,@"123"];
NSURL *pathURL = [NSURL fileURLWithPath:_docmentFilePath];
_recorder = [[AVAudioRecorder alloc] initWithURL:pathURL settings:settings error:&error];
if (error || !_recorder) {
NSLog(@"recorder: %@ %zd %@", [error domain], [error code], [[error userInfo] description]);
return;
}
_recorder.delegate = self;
[_recorder prepareToRecord];
_recorder.meteringEnabled = YES;
if (!_audioSession.isInputAvailable) {
return;
}
[_recorder record];
}