我试图在android中合并两个amr文件根据这个答案:合并AMR音频文件在java或android我拒绝第二个文件的前6个字节,然后写入第一个amr文件…输出文件正在合并两个文件,但在连接第二时有噪声。这是我的代码:
soundFile.createNewFile();
FileInputStream inputStream1 = new FileInputStream(soundFile.getAbsolutePath()+0);
FileInputStream inputStream2 = new FileInputStream(soundFile.getAbsolutePath()+1);
FileOutputStream outputStream = new FileOutputStream(new File(soundFile.getAbsolutePath()+"w"));
int temp = 0;
inputStream2.read();
inputStream2.read();
inputStream2.read();
inputStream2.read();
inputStream2.read();
inputStream2.read();
while( (temp = inputStream2.read()) != -1 )
{
outputStream.write(temp);
}
outputStream.close();
inputStream2.close();
inputStream2 = new FileInputStream(soundFile.getAbsolutePath()+"w");
SequenceInputStream inputStream3 = new SequenceInputStream(inputStream1, inputStream2);
outputStream = new FileOutputStream(soundFile);
//FileWriter fileWriter = new FileWriter(soundFile, true);
while( (temp = inputStream3.read()) != -1 )
{
outputStream.write(temp);
}
outputStream.close();
inputStream1.close();
inputStream2.close();
inputStream3.close();
//fileWriter.close();
//fileWriter.flush();
} catch (IOException e) {
}
这是我的第一个amr文件:http://www.filedropper.com/aaaa_2 这是第二个amr文件:www.filedropper.com/aaaa_3
,这是我的合并amr文件:www.filedropper.com/aaaa_4
有人能帮我吗?您需要单独记录文件,然后可以将它们连接在一起。
使用RAW AMR格式。例如,将记录器设置设置为:
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
一旦你有了在RAW AMR中生成的音频文件,你可以通过剥离你正在附加的文件的前6个字节来连接这些文件。