16位PCM数据 整形数组读取后,赋值给实数数组,声音不正确了。
有一 16位Wav音频文件,使用 short类型读取 ,float写回去之后发现声音不对了,是为什么呢?
伪代码如下:
short *input;
float *output;
while 1
{
read(input); //读出wav数据 input ->short
for(sample_count=0; sample_count length; sample_count++)
output[sample_out] = input[sample_count]; //将音频数据写到 output数组 -->float类型
write(output); //保存到文件
}
经过上面处理之后,output新生成的文件全是噪音。这是什么原因呢?