在android中合并两个amr文件

时间:2015-09-01 08:28:41

标签: android merge amr

我试图在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可以帮助我吗?

感谢我的英语......

1 个答案:

答案 0 :(得分:-1)

您需要单独录制文件,然后将它们连接在一起。

使用RAW AMR格式。即将录像机设置设置为:

recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

在RAW AMR中生成音频文件后,您可以通过删除要附加的文件的前6个字节来加入这些文件。以二进制模式打开音频文件。