音频基础

459 阅读2分钟

基本名词

  • 采样率

采样频率指录音设备在一秒钟内对声音信号的采样次数。采样频率越高,声音的还原就越真实越自然。

目前主流的采样频率有22.05KHz、44.1KHz、48KHz三种。

22.05 KHz为FM广播的声音品质,44.1KHz为理论上的CD声音品质。48KHz为人耳可辨别的最高采样频率。

  • 量化位数

量化位数是音频文件的另一个参数。量化位数越大,声音的质量越高。常用的量化位数有8位、16位和32位。

量化位数指用几位二进制数来存储采样获得的数据。量化位数为8即指用8位二进制数来存储数据,如00010111

  • 声道数

声道分为单声道与双声道。

单声道即为左右耳听到的声音相同。

双声道两耳听到的信息不同。相同的声音时间、采样频率和比特率的情况下,双声道文件的存储空间是单声道的两倍。但其会给人空间感,游戏和电影中常采用双声道,可达到“听声辨位”的效果。


播放一个视频,需要经历下面几步:

  • 输入视频url
  • 确定视频的封装格式
  • 开始解封装
  • 识别视频的轨道数据
  • 分离轨道数据,音频轨道、视频轨道
  • 解码视频数据为原始数据,解码音频数据为原始数据
  • 做好音视频同步
  • 渲染视频原始数据,播放音频原始数据

音频数据的存储

音频数据在 java 中以 16 位为基本单位,也就是两个字节,众所周知 int 类型的数据占用 32位(4字节),short 类型的数据占用 16 位,byte 类型占用 8 位(1字节)

我们可以使用 byte 和 short 来存放音频数据,在 Java 中 short 的运算结果会被转换为 Integer,所以在赋值前需要进行强制类型转换

// example
short a = 1234;
short b = 1234;
short c;

c =  (short) a + b;

相关链接