#import <AVFoundation/AVFoundation.h> 需要引入
//获取document目录的路径 view plain - (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]; }
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。