-----------------------------------------------------------------------------------------------------------------------
1.购物车demo.
2.自定义点击展开列表.
3.调整UIButton的title和image位置.
4.tableView+collectionView,展开显示更多信息.
5.修改UIButton标题和图片位置的扩展.
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------
音频数据格式(音频编码)
这里先来理解音频编码,在音频相关的内容中,音频编码是最重要的.
iPhone中支持的音频格式如下:
AAC: 被设计用来取代MP3音频编码的.它会压缩原来的声音,因此会减少存储空间.实际中ACC比MP3更好的压缩率.
AMR: AMR是一个编码格式用于压缩语音的音频编码格式.
linear PCM: 是标准的线性脉冲编码,一般是将模拟声音转化成数字信号,这是一个未压缩的音频格式.由于是未压缩的音频编码格式,因此播放时候用这种格式最是最好的选择,但是会占用过多的空间.
MP3: ...
Bit Rates比特率
音频文件的比特率就是只单位时间内传送的bit数,单位是bit/s,kbit/s.更高的比特率会导致更大的文件.我们在使用有些音频数据格式例如AAC或者MP3时,需要我们去设置比特率,这个参数与音频格式在压缩过程的压缩率有关.当我们让比特率变低,那么音频质量就会更差.
注释: 1kbit/s = 1000bit/s,而不是1024bit/s
我们需要权衡比特率的大小和声音文件的质量,选择合适的比特率.如果我们使用的是语音声音,那么比特率可以适当低一点.
下面是常见的比特率:
. 32kbit/s: AM 无限电广播的质量
. 48kbit/s: 很长的语音对话
. 64kbit/s: 正常长度的语音对话的比特率
. 96kbit/s: FM广播
. 128kbit/s: MP3音乐
. 329kbit/s: CD的比特率
. 500kbit/s~1411kbit/s: 无损音频编码格式,比如LPCM
3个重要的概念: ( 采样频率和采样位数,比特率)
1. 采样频率
采样频率是指单位时间内对声音模拟信号的采样次数。采样率类似于视频的帧数,比如电影的采样率是24Hz。当我们把采样到的一个个静止画面再以采样率同样的速度回放时,看到的就是连续的画面。同样的道理,把以44.1kHZ采样率记录的CD以同样的速率播放时,就能听到连续的声音。显然,这个采样率越高,听到的声音和看到的图像就越连贯。当然,人的听觉和视觉器官能分辨的采样率是有限的。对同一段声音,用20kHz和44.1kHz来采样,重放时,可能可以听出其中的差别,而基本上高于44.1kHZ采样的声音,比如说96kHz采样,绝大部分人已经觉察不到两种采样出来的声音的分别了。之所以使用44.1kHZ这个数值是因为经过了反复实验,人们发现这个采样精度最合适,低于这个值就会有较明显的损失,而高于这个值人的耳朵已经很难分辨,而且增大了数字音频所占用的空间。我们所使用的CD的采样标准就是44.1k。
2. 采样位数
采样位数可以理解为采集卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。我们首先要知道:电脑中的声音文件是用数字0和1来表示的。连续的模拟信号按一定的采样频率经数码脉冲取样后,每一个离散的脉冲信号被以一定的量化精度量化成一串二进制编码流,这串编码流的位数即为采样位数,也称为量化精度。
在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。采集卡的位是指采集卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采集卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。例如,同一段音频信息,使用8bit描述单个采样信息,那么采样量化的范围就是0~255,如果使用16bit表示单个采样值,那么相应的采样量化的范围为0~64k。与8位采样位数相比,16位采样的动态范围的宽度更小,动态范围更宽广,声音的被记录的更加精细。一般CD使用的采样位数为16位。
16位二进制数的最小值是0000000000000000,最大值是1111111111111111,对应的十进制数就是0和65535,也就是最大和最小值之间的差值是65535,也就是说,它量化的模拟量的动态范围可以差65535,也就是96.32分贝(20 * lg65535)),所以,量化精度只和动态范围有关,和频率响应没关系。动态范围定在96分贝也是有道理的,人耳的无痛苦极限声压是90分贝,96分贝的动态范围在普通应用中足够使用,所以96分贝动态范围内的模拟波,经量化后,不会产生削波失真的。
所谓分贝是指两个相同的物理量(例A1和A0)之比取以10为底的对数并乘以10(或20)。N = 10lg(A1/A0) 分贝符号为"dB",它是无量纲的。式中A0是基准量(或参考量),A是被量度量。被量度量和基准量之比取对数,这对数值称为被量度量的"级"。亦即用对数标度时,所得到的是比值,它代表被量度量比基准量高出多少"级"。
位速/比特率/码率
位速/比特率/码率描述的都是一个东西,是指在一个数据流中每秒钟能通过的信息量。我们可能看到过音频文件用 “128–Kbps MP3” 或 “64–Kbps WMA” 进行描述的情形。Kbps 表示 “每秒千位数”,因此数值越大表示数据越多:128–Kbps MP3 音频文件包含的数据量是 64–Kbps WMA 文件的两倍,并占用两倍的空间。(不过在这种情况下,这两种文件听起来没什么两样。原因是什么呢?有些文件格式比其他文件能够更有效地利用数据, 64–Kbps WMA 文件的音质与 128–Kbps MP3 的音质相同。)需要了解的重要一点是,位速越高,信息量越大,对这些信息进行解码的处理量就越大,文件需要占用的空间也就越多。
从码率的计算公式中可以清楚的看出码率和采样位数的关系:
码率=取样频率×量化精度×声道数
一张CD,双声道,采样率44.1kHz,每个采样位数13bit,时长74分钟(4440秒),则CD的容量为13*2*44100*4440约等于640MB。
iOS播放PCM,NSData流代码(Audio Queue Services
网友评论