1.总结博文《Android音频开发(1):基础知识》(by Jhuster)的一些知识要点与学习心得
(原文:https://blog.51cto.com/ticktick/1748506 )
1.1 基本概念
语音视频类-学习笔记(一)_第1张图片
1)采样率、量化精度(位宽)、声道数(channels)、音频帧(frame)
小结:采样率相当于做波形x轴的微分,量化精度则是做y轴的微分,音频帧包含的数据量即是对波形的一小段做积分。
2)采样定理简记为两倍采样定理
3)音频压缩原理:把人耳听不到的频率滤除(频谱掩蔽效应),把强、弱声强同时出现时的弱声强滤除(时域掩蔽效应)。WAV文件是无损的,MP3等众格式则是压缩的。
4)延时标准:高质量语音可接受的时延是300ms。(现在产品竞争激烈,时延超过300ms就要被pass掉了)

存疑:
1)采样后的二进制不就是按线性排列,还需要做编码?编码在做什么呢?量化过程?


2.总结博文《Android音频开发(2):如何采集一帧音频》(by Jhuster)的一些知识要点与学习心得(原文:https://blog.51cto.com/ticktick/1749719)
1)android音频采集的API:MediaRecorder和AudioRecord。看名称大概就能猜出用途的不同,前者用于媒体类采集突出易用性,后者则专业性更强。
2)音频采集得到的是PCM数据。
3)AudioRecord的工作流程:初始化音频缓冲区->采集->应用层调用缓冲->停止,释放资源。
另外,原文作者还详述了参数配置定义及示例代码(java)。

3.
1)android音频播放API:MediaPlayer,SoundPool,AudioTrack。区别在于,MediaPlayer类似我们日常用到的播放器;SoundPool播放短音频,比如收到短信的声音(叮~);AudioTrack专业性更强(Audio俨然成了专业的象征),可以做一些高级设置。
2)使用AudioTrack播放的音频必须是解码后的PCM数据。
3)AudioTrack的工作流程基本上和AudioRecord一样,换汤不换锅。
原文作者还详述了相关参数配置定义及示例代码(java)。

4.Android音频开发(4):如何存储和解析wav文件 https://blog.51cto.com/ticktick/1752947

1)WAV格式:微软开发的一种无损音频格式。格式分为两部分:文件头和数据块。文件头包括:采样率、通道数、位宽等等;数据块即原始的 PCM 数据。(这个和字符串类似,头几个字符用来表示长度信息,后面才是“真正的”字符)。