zoukankan      html  css  js  c++  java
  • iOS开发简记(4):录音AVAudioRecorder

    录音,声音的采集,一般有两种实现办法,一是使用AVAudioRecorder,一是使用AudioUnit。如果只是简单的录音,使用AVAudioRecorder就可以了,如果想更灵活地处理刚录到的声音数据,那应该使用AudioUnit。

    小程这里记录AVAudioRecorder的使用。

    (1)初始化

    AVAudioRecorder录音时,直接保存成文件,而写文件就是音频编码的过程,所以,在启动录音前,就应该设置后编码的参数(包括编码格式、采样率、位深、通道数等)。

    可以这样设置:

    这里编码成aac格式。对于多媒体的知识,读者可以关注“广州小程”微信公众号,并在“多媒体”菜单项内查阅文章。

    (2)启动录音

    代码如下:

    调用上很简单,alloc一个AVAudioRecorder,指定录音保存路径跟录音设置,然后调用record函数就启动录音了。

    (3)录音回调

    启动录音后,应该响应AVAudioRecorder的回调函数:

    - (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag

    AVAudioRecorder在录音结束时会调用这个函数,实现这个函数的类需要继承协议AVAudioRecorderDelegate。

    (4)录音能量变化

    一般在录音时,需要在界面上显示能量(分贝)的变化,而AVAudioRecorder提供了获取能量的接口。

    可以这样取能量变化:

    在取能量之前,应该先设置AVAudioRecorder的meteringEnabled属性为YES(比如在创建AVAudioRecorder时设置):

    newRecorder.meteringEnabled = YES;

    在拿到能量的值后,可以根据这个值来划分等级,从而在界面上显示不同的图片,比如:

    能量的等级显示,这里给出其效果的一个截图:

    感谢各位的关注,后面我会把IOS客户端源码、API源码呈献给大家,完整的示例大家可以暂时到AppStore下载安装“知音”。

  • 相关阅读:
    推荐算法学习资料
    imsdroid 学习(初认识)
    从网易新闻看离线阅读的实现思路
    关于PullToRefreshView bug 的修复
    Android Log日志的封装类,显示类名以及行号,快速定位
    Android Sqlite数据库版本升级管理初探
    《围观啦》发布了!!!!!!!
    单本书阅读,android客户端
    Android P2P语音通话实现(思路探讨)
    HTTP协议基础
  • 原文地址:https://www.cnblogs.com/jonlan/p/9993521.html
Copyright © 2011-2022 走看看