IPhone之AVAudioRecorder
#import <AVFoundation/AVFoundation.h> 需要引入
//获取document目录的路径viewplain-(NSString*)documentsPath{if(!_documentsPath){NSArray*searchPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);_documentsPath=[searchPathsobjectAtIndex:0];[_documentsPathretain];}return_documentsPath;}//(document目录的路径)NSString*destinationString=[[selfdocumentsPath]stringByAppendingPathComponent:filenameField.text];NSURL*destinationURL=[NSURLfileURLWithPath:destinationString];//初始化AVAudioRecorderNSError*recorderSetupError=nil;AVAudioRecorderaudioRecorder=[[AVAudioRecorderalloc]initWithURL:destinationURLsettings:recordSettingserror:&recorderSetupError];[recordSettingsrelease];
第二个参数 settings是一个容纳键值对的NSDictionary有四种一般的键
1:一般的音频设置
2:线性PCM设置
3:编码器设置
4:采样率转换设置
NSMutableDictionary 需要加入五个设置值(线性PCM)
view plain
NSMutableDictionary*recordSettings=[[NSMutableDictionaryalloc]initWithCapacity:10];//1ID号[recordSettingssetObject:[NSNumbernumberWithInt:kAudioFormatLinearPCM]forKey:AVFormatIDKey];floatsampleRate=[pcmSettingsViewController.sampleRateField.textfloatValue];//2采样率[recordSettingssetObject:[NSNumbernumberWithFloat:sampleRate]forKey:AVSampleRateKey];//3通道的数目[recordSettingssetObject:[NSNumbernumberWithInt:(pcmSettingsViewController.stereoSwitch.on?2:1)]forKey:AVNumberOfChannelsKey];intbitDepth=[pcmSettingsViewController.sampleDepthField.textintValue];//4采样位数默认16[recordSettingssetObject:[NSNumbernumberWithInt:bitDepth]forKey:AVLinearPCMBitDepthKey];//5[recordSettingssetObject:[NSNumbernumberWithBool:pcmSettingsViewController.bigEndianSwitch.on]forKey:AVLinearPCMIsBigEndianKey];//6采样信号是整数还是浮点数[recordSettingssetObject:[NSNumbernumberWithBool:pcmSettingsViewController.floatingSamplesSwitch.on]forKey:AVLinearPCMIsFloatKey];
AVAudioRecorder成功创建后,使用他非常直接.它的三个基本方法如下
view plain
-(void)startRecording{[audioRecorderrecord];}-(void)pauseRecording{[audioRecorderpause];recordPauseButton.selected=NO;}-(void)stopRecording{[audioRecorderstop];}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。