我试图在android中合并两个amr文件 根据这个答案: Merge AMR audio file in java or 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
这是我的合并文件:www.filedropper.com/aaaa_4
any1可以帮助我吗?
感谢我的英语......答案 0 :(得分:-1)
您需要单独录制文件,然后将它们连接在一起。
使用RAW AMR格式。即将录像机设置设置为:
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
在RAW AMR中生成音频文件后,您可以通过删除要附加的文件的前6个字节来加入这些文件。以二进制模式打开音频文件。