参考:
视音频数据处理入门:PCM音频采样数据处理_audition pcma-CSDN博客
从代码可以看出,PCM16LE双声道数据中左声道和右声道的采样值是间隔存储的。每个采样值占用2Byte空间。
(2)将PCM16LE双声道音频采样数据中左声道的音量降一半
(3)将PCM16LE双声道音频采样数据的声音速度提高一倍
(4)将PCM16LE双声道音频采样数据转换为PCM8音频采样数据
PCM16LE格式的采样数据的取值范围是-32768到32767,而PCM8格式的采样数据的取值范围是0到255。所以PCM16LE转换到PCM8需要经过两个步骤:第一步是将-32768到32767的16bit有符号数值转换为-128到127的8bit有符号数值,第二步是将-128到127的8bit有符号数值转换为0到255的8bit无符号数值。
short转char是怎么转的?即16bit转换为8bit是怎么转的?
图中内存为:sample
(5)将从PCM16LE单声道音频采样数据中截取一部分数据
写文件时采样值数值的计算方法:
上面内存为:&sample为116c,而通过计算后samplenum的十进制为4460,相同。
(6)将PCM16LE双声道音频采样数据转换为WAVE格式音频数据
最后再写入WAVE_HEADER
小插曲:fread fwrite之后文件指针位置 会移动:
https://blog.csdn.net/csdn66_2016/article/details/70902460
程序运行后结果: