我想通过乘以0~1之间的分数来改变PCM(1k正弦波)音量,例如:
char singlebuffer[1764];
qreal ProcessedVolume=0.5;
for (j=0;j<1764;j++)
singlebuffer[j]=singlebuffer[j]*(ProcessedVolume);
当ProceededVolume
不是&#34; 1&#34;时,结果音频非常奇怪。奇怪的声音听起来像1K正弦混合其他&#34;环噪声&#34;或混合其他&#34;金属踢噪声&#34;。但是,当我使用示波器监视输出音频时,它仍然完美的1K,只能最小化音量。我也检查FFT频谱,仍然只有1K信号。然而,它听起来与原始的1K音频非常不同。
为什么?我的耳朵有问题或者我不能简单地将一小部分乘以原始的原始PCM数据?
感谢任何建议〜