iOS录音功能

【音频】

指人耳可以听到的声音频率在20HZ~20kHz之间的声波,称为音频。

【采样频率】

即取样频率, 指每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多。由于人耳的分辨率很有限,太高的频率并不能分辨出来。

22050 的采样频率是常用的, 44100已是CD音质, 超过48000或96000的采样对人耳已经没有意义。这和电影的每秒 24 帧图片的道理差不多。

如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍.

【采样位数】

即采样值或取样值(就是将采样样本幅度量化)。它是用来衡量声音波动变化的一个参数,也可以说是声卡的分辨率。它的数值越大,分辨率也就越高,所发出声音的能力越强。

每个采样数据记录的是振幅, 采样精度取决于采样位数的大小:
    •    1 字节(也就是8bit) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级;
    •    2 字节(也就是16bit) 可以细到 65536 个数, 这已是 CD 标准了;
    •    4 字节(也就是32bit) 能把振幅细分到 4294967296 个等级, 实在是没必要了.

【通道数】

即声音的通道的数目。常有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声可以使两个喇叭都发声(一般左右声道有分工) ,更能感受到空间效果,当然还有更多的通道数。

【帧】

帧记录了一个声音单元,其长度为样本长度(采样位数)和通道数的乘积。

【周期】

音频设备一次处理所需要的帧数,对于音频设备的数据访问以及音频数据的存储,都是以此为单位。

【交错模式】

数字音频信号存储的方式。数据以连续帧的方式存放,即首先记录帧1的左声道样本和右声道样本,再开始帧2的记录...

【非交错模式】

首先记录的是一个周期内所有帧的左声道样本,再记录所有右声道样本。

【比特率】

每秒的传输速率(位速, 也叫比特率)。如705.6kbps 或 705600bps, 其中的 b 是 bit, ps 是每秒的意思,表示每秒705600bit的容量。

选择一个Category
AVAudioSessionCategoryAmbient 或 kAudioSessionCategory_AmbientSound
——用于非以语音为主的应用,使用这个category的应用会随着静音键和屏幕关闭而静音。并且不会中止其它应用播放声音,可以和其它自带应用如iPod,safari等同时播放声音。注意:该Category无法在后台播放声音
AVAudioSessionCategorySoloAmbient 或 kAudioSessionCategory_SoloAmbientSound
——类似于AVAudioSessionCategoryAmbient 不同之处在于它会中止其它应用播放声音。 这个category为默认category。该Category无法在后台播放声音
AVAudioSessionCategoryPlayback 或 kAudioSessionCategory_MediaPlayback
——用于以语音为主的应用,使用这个category的应用不会随着静音键和屏幕关闭而静音。可在后台播放声音
AVAudioSessionCategoryRecord 或 kAudioSessionCategory_RecordAudio
———用于需要录音的应用,设置该category后,除了来电铃声,闹钟或日历提醒之外的其它系统声音都不会被播放。该Category只提供单纯录音功能。
AVAudioSessionCategoryPlayAndRecord 或 kAudioSessionCategory_PlayAndRecord
——用于既需要播放声音又需要录音的应用,语音聊天应用(如微信)应该使用这个category。该Category提供录音和播放功能。如果你的应用需要用到iPhone上的听筒,该category是你唯一的选择,在该Category下声音的默认出口为听筒(在没有外接设备的情况下)。

注意:并不是一个应用只能使用一个category,程序应该根据实际需要来切换设置不同的category,举个例子,录音的时候,需要设置为AVAudioSessionCategoryRecord,当录音结束时,应根据程序需要更改category为AVAudioSessionCategoryAmbient,AVAudioSessionCategorySoloAmbient或AVAudioSessionCategoryPlayback中的一种。

录音相关设置
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
//1.设置录音格式:AVFormatIDKey
[dict setObject:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
//2.设置录音采样速率:AVSampleRateKey 8000/44100/96000
[dict setObject:[NSNumber numberWithInt:44100] forKey:AVSampleRateKey];
//3.设置录音质量:AVEncoderAudioQualityKey
[dict setObject:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey];
//4.设置线性采样位数:AVLinearPCMBitDepthKey 8/16/24
[dict setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
//5.录音通道:AVNumberOfChannelsKey 1/2
[dict setObject:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值