объединить два файла amr в android

Я пытаюсь объединить два файла amr в Android в соответствии с этим ответом: Объединить аудио 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

любой1 может мне помочь?

спасибо и извините за мой английский...


person user5184542    schedule 01.09.2015    source источник


Ответы (1)


Вам нужно записывать файлы по отдельности, а затем объединять их вместе.

Используйте формат RAW AMR. т. е. установите настройки рекордера на:

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

Когда у вас есть аудиофайлы, сгенерированные в RAW AMR, вы можете соединить эти файлы, разделив первые 6 байтов файла, который вы добавляете. Откройте аудиофайлы в двоичном режиме для того же.

person Rohan Zemse    schedule 06.11.2017