看网上混音的例子挺多的,我也不啰嗦了,就简单说一下,混音同样要统一采样率,比特率和声道,还多一个统一时长
网上的例子都是用录音加背景音乐进行混音,这样很简单只要用背景音乐的采样率,比特率,声道和时长来进行录音就ok了,所以我也就不搞了
我这个功能其实挺鸡肋的,我也就是瞎搞搞,举一反三嘛
看网上混音的代码都差不多,也不知道作者是哪个大神,我就2段音频就修改了一下
private byte[] mixAudioBytes(byte[] bgBytes,byte[] voiceBytes){
if (bgBytes.length == 0 || voiceBytes.length == 0)
return null;
if(bgBytes.length != voiceBytes.length){
return null;
}
int length = bgBytes.length/2;
for (int i = 0; i < length; i++) {
short bgShort = (short) ((bgBytes[i * 2] & 0xff) | (bgBytes[i * 2 + 1] & 0xff) << 8);
short voiceShort = (short) ((voiceBytes[i * 2] & 0xff) | (voiceBytes[i * 2 + 1] & 0xff) << 8);
short mixAudio = (short) ((bgShort+voiceShort) / 2);
bgBytes[i * 2] = (byte) (mixAudio & 0x00FF);
bgBytes[i * 2 + 1] = (byte) ((mixAudio & 0xFF00) >> 8);
}
return bgBytes;
}
代码基本用的是上一篇文章android 使用MediaCodec和lamemp3对多段音频进行截取和拼接,所以界面就懒得搞了