Android手机直播之音频编码技术

编程

Android中利用AudioRecord可以录制声音,录制出来的声音是PCM声音。想要将声音用计算机语言表述,则必须将声音进行数字化。将声音数字化,最常见的方式是透过脉冲编码调制PCM(Pulse Code Modulation) 。声音经过麦克风,转换成一连串电压变化的信号。要将这样的信号转为 PCM 格式的方法,是使用三个参数来表示声音,它们是:声道数、采样位数和采样频率。

1、采样频率
即取样频率,指每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多。由于人耳的分辨率很有限,太高的频率并不能分辨出来。在16位声卡中有22KHz、44KHz等几级,其中,22KHz相当于普通FM广播的音质,44KHz已相当于CD音质了,目前的常用采样频率都不超过48KHz。

2、采样位数
即采样值或取样值(就是将采样样本幅度量化)。它是用来衡量声音波动变化的一个参数,也可以说是声卡的分辨率。它的数值越大,分辨率也就越高,所发出声音的能力越强。
在计算机中采样位数一般有8位和16位之分,但有一点请大家注意,8位不是说把纵坐标分成8份,而是分成2的8次方即256份; 同理16位是把纵坐标分成2的16次方65536份。

3、声道数
很好理解,有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声的pcm可以使两个喇叭都发声(一般左右声道有分工) ,更能感受到空间效果。

那么,现在我们就可以得到pcm文件所占容量的公式:
存储量=(采样频率
采样位数 声道 时间) 8 (单位:字节数)

如果音频全部用PCM的格式进行传输,则占用带宽比较大,因此在传输之前需要对音频进行编码。
现在已经有一些广泛使用的声音格式,如:wav、MIDI、MP3、WMA、AAC、Ogg等等。相比于pcm格式而言,这些格式对声音数据进行了压缩处理,可以降低传输带宽。
对音频进行编码也可以分为软编和硬编两种。软编则下载相应的编码库,写好相应的jni,然后传入数据进行编码。硬编则是使用Android自身提供的MediaCodec。

后续会讲述如何进行音频编码,图玩智能科技为企业提供直播平台的二次开发服务,最大化节约软件开发的成本,帮助企业搭建更加完善的直播系统,欢迎随时咨询www.toivan.com.

 

以上是 Android手机直播之音频编码技术 的全部内容, 来源链接: utcz.com/z/515039.html

回到顶部