iOS开发之多媒体篇-录音

实现录音功能和播放音乐功能非常类似,都需要用到 "AVFoundation框架

录音三部曲

1. "创建录音器

1.1创建录音器

#warning 和音乐播放器一样,录音器必须定义一个strong类型的强引用 @property (nonatomic,strong) AVAudioRecorder *recorder;

代码如下:

AVAudioRecorder *recorder = [[AVAudioRecorder alloc] initWithURL:url settings:setting error:nil];

这里传入的url和音乐播放器的不同,音乐播放器的是本地资源文件的url,而这里是"存放"录音文件的url(沙盒)

关于setting:这里需要传入一个字典,具体的参数解释如下(比较专业,工作中不需要程序员去选择,会有专业的音频同事直接告诉你传什么)

//    // 音频格式

//    setting[AVFormatIDKey] = @(kAudioFormatAppleIMA4);

//    // 音频采样率-->采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准

//    setting[AVSampleRateKey] = @(8000.0);

//    // 音频通道数-->iPhone只有一个 电脑可能多个

//    setting[AVNumberOfChannelsKey] = @(1);

//    // 线性音频的位深度(8/16/24/32 bit) 数值越高 失真越小

//    setting[AVLinearPCMBitDepthKey] = @(8);


================================================================================================


2. "准备录音

//缓冲录音

[self.recorder prepareToRecord];

虽然此方法在录音前会自动调用,但建议写上


================================================================================================


3. "播放 暂停 停止

//播放

[self.recorder record];


//暂停

[self.recorder pause];


//停止

[self.recorder stop];


注意:暂停录音后录音文件不会存放在沙盒中,只有在停止录音时才会存放在沙盒中!


================================================================================================

>>测量分贝功能

1.测量分贝首先需要开启测量功能

self.recorder.meteringEnabled = YES;


2.在用定时器调用方法中,需要先更新最新的数据

[self.recorder updateMeters];


3.得到分贝的均值

CGFloat power = [self.recorder averagePowerForChannel:0];


你可能感兴趣的:(iOS开发,OC编程,移动开发,编程技巧)