我正在创作一个音乐应用程序,我需要用乐器音乐加入用户的声音。为实现这一目标,我需要将乐器音乐解码为PCM并将其与用户的声音相结合。我用来组合音乐的算法是:
int sample1 = ...;
int sample2 = ...;
int combinedSample = sample1+sample2;
combinedSample /= 2;
然而,结果非常烦人。声音听不到,声音听不到。当我在Audacity中打开生成的PCM文件时,它看起来像这样(奇怪):
另外,我尝试了这个公式,结果不是预期的。
int sample1 = ....;
int sample2 = ....;
int combinedSample = sample1+sample2;
if (combinedSample >= 32767) {
combinedSample = 32767;
} else if (combinedSample <= -32768) {
combinedSample = -32768;
}