首页 > 代码库 > 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;

    }

}