我有 2 个文件。曾经是一个 mp3 被解码为 pcm 到一个流中,我也有一个 wav 被读入 pcm。样本以短数据类型保存。
音频统计:44,100 个样本 * 每个样本 16 位 * 2 个通道 = 1,411,200 位/秒
我需要将 X 秒的静音应用到 mp3 pcm 数据的开头,我这样做是这样的:
private short[] mp3Buffer = null;
private short[] wavBuffer = null;
private short[] mixedBuffer = null;
double silenceSamples = (audioInfo.rate * padding) * 2;
for (int i = 0; i < minBufferSize; i++){
if (silenceSamples > 0 ){
mp3Buffer[i] = 0; //Add 0 to the buffer as silence
mixedBuffer[i] = (short)((mp3Buffer[i] + stereoWavBuffer[i])/2);
silenceSamples = silenceSamples - 0.5;
}
else
mixedBuffer[i] = (short)((mp3Buffer[i] + stereoWavBuffer[i])/2);
}
音频始终关闭。有时一两秒太快,有时一两秒太慢太慢。我不认为这是时间问题,因为我首先启动音频记录(wav),然后设置启动计时器->启动媒体播放器(已经准备好)->结束计时器并将差异设置为“填充”变量。从 wav 标头中,我也跳过了 44kb。
任何帮助将非常感激。