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];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值