首页 > 代码库 > xcode中用AVAudioRecorder录音到指定的caf文件
xcode中用AVAudioRecorder录音到指定的caf文件
-(void) StartRecord:(NSURL *) recordedFile
{
session = [AVAudioSession sharedInstance];
session.delegate = self;
NSError *sessionError;
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];
if(session == nil)
NSLog(@"Error creating session: %@", [sessionError description]);
else
[session setActive:YES error:nil];
/*
NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithFloat:44100.0], AVSampleRateKey,
[NSNumber numberWithInt:kAudioFormatMPEG4AAC], AVFormatIDKey,
[NSNumber numberWithInt:2], AVNumberOfChannelsKey,
nil];
*/
//录音设置
NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
//录音格式 无法使用
[settings setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey: AVFormatIDKey];
//采样率
[settings setValue :[NSNumber numberWithFloat:11025.0] forKey: AVSampleRateKey];//44100.0
//通道数
[settings setValue :[NSNumber numberWithInt:2] forKey: AVNumberOfChannelsKey];
//线性采样位数
//[recordSettings setValue :[NSNumber numberWithInt:16] forKey: AVLinearPCMBitDepthKey];
//音频质量,采样质量
[settings setValue:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey];
recorder = [[AVAudioRecorder alloc] initWithURL:recordedFile settings:settings error:nil];
[recorder prepareToRecord];
[recorder record];
}
-(void) StopRecord
{
[recorder stop];
if(recorder)
{
recorder = nil;
}
}