#import <AVFoundation/AVFoundation.h> 需要引入
//获取document目录的路径
第二个参数 settings是一个容纳键值对的NSDictionary有四种一般的键
1:一般的音频设置
2:线性PCM设置
3:编码器设置
4:采样率转换设置
NSMutableDictionary 需要加入五个设置值(线性PCM)
;
AVAudioRecorder成功创建后,使用他非常直接.它的三个基本方法如下
//获取document目录的路径
- (NSString*) documentsPath { if (! _documentsPath) { NSArray *searchPaths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); _documentsPath = [searchPaths objectAtIndex: 0]; [_documentsPath retain]; } return _documentsPath; } //(document目录的路径) NSString *destinationString = [[self documentsPath] stringByAppendingPathComponent:filenameField.text]; NSURL *destinationURL = [NSURL fileURLWithPath: destinationString]; //初始化AVAudioRecorder NSError *recorderSetupError = nil; AVAudioRecorder audioRecorder = [[AVAudioRecorder alloc] initWithURL:destinationURL settings:recordSettings error:&recorderSetupError]; [recordSettings release];
第二个参数 settings是一个容纳键值对的NSDictionary有四种一般的键
1:一般的音频设置
2:线性PCM设置
3:编码器设置
4:采样率转换设置
NSMutableDictionary 需要加入五个设置值(线性PCM)
NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] initWithCapacity:10]; //1 ID号 [recordSettings setObject: [NSNumber numberWithInt: kAudioFormatLinearPCM] forKey: AVFormatIDKey]; float sampleRate = [pcmSettingsViewController.sampleRateField.text floatValue]; //2 采样率 [recordSettings setObject: [NSNumber numberWithFloat:sampleRate] forKey: AVSampleRateKey]; //3 通道的数目 [recordSettings setObject: [NSNumber numberWithInt: (pcmSettingsViewController.stereoSwitch.on ? 2 : 1)] forKey:AVNumberOfChannelsKey]; int bitDepth = [pcmSettingsViewController.sampleDepthField.text intValue]; //4 采样位数 默认 16 [recordSettings setObject: [NSNumber numberWithInt:bitDepth] forKey:AVLinearPCMBitDepthKey]; //5 [recordSettings setObject: [NSNumber numberWithBool: pcmSettingsViewController.bigEndianSwitch.on] forKey:AVLinearPCMIsBigEndianKey]; //6 采样信号是整数还是浮点数 [recordSettings setObject: [NSNumber numberWithBool: pcmSettingsViewController.floatingSamplesSwitch.on] forKey:AVLinearPCMIsFloatKey]
;
AVAudioRecorder成功创建后,使用他非常直接.它的三个基本方法如下
-(void) startRecording { [audioRecorder record]; } -(void) pauseRecording { [audioRecorder pause]; recordPauseButton.selected = NO; } -(void) stopRecording { [audioRecorder stop]; }