温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

IPhone之AVAudioRecorder

发布时间:2020-04-05 19:31:03 阅读:422 作者:tony关东升 栏目:开发技术
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

#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)


view plain
    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成功创建后,使用他非常直接.它的三个基本方法如下


view plain
-(void) startRecording {    [audioRecorder record];   }   -(void) pauseRecording {    [audioRecorder pause];    recordPauseButton.selected = NO;   }   -(void) stopRecording {    [audioRecorder stop];   }   

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×