Cómo combinar dos archivos mp3 en uno (combinar / unir)

¿Puede alguien decir cómo combinar / fusionar dos archivos multimedia en uno solo?

encontré un tema sobre audioInputStream pero ahora no es compatible con Android, y todo el código para Java.

Y en StackOverflow encontré este enlace aquí, pero no encuentro solución, estos enlaces solo se transmiten en audio. Cualquiera puede decirme?

¿PD y por qué no puedo comenzar la recompensa? 🙁

Considere dos casos para archivos .mp3 :

  • Archivos con la misma frecuencia de muestreo y número de canales

En este caso, podemos anexar el segundo archivo al final del primer archivo. Esto se puede lograr utilizando las clases de archivos disponibles en Android.

  • Archivos con diferente frecuencia de muestreo o número de canales.

En este caso, uno de los clips tiene que volver a codificarse para garantizar que ambos archivos tengan la misma frecuencia de muestreo y la misma cantidad de canales. Para hacer esto, necesitaríamos decodificar MP3, obtener muestras de PCM, procesarlo para cambiar la frecuencia de muestreo y luego recodificarlo a MP3. Por lo que sé, Android no tiene API de transencoding o reencripción. Una opción es usar una biblioteca externa como lame / FFMPEG a través de JNI para volver a codificar.

 import java.io.*; public class TwoFiles { public static void main(String args[]) throws IOException { FileInputStream fistream1 = new FileInputStream("C:\\Temp\\1.mp3"); // first source file FileInputStream fistream2 = new FileInputStream("C:\\Temp\\2.mp3");//second source file SequenceInputStream sistream = new SequenceInputStream(fistream1, fistream2); FileOutputStream fostream = new FileOutputStream("C:\\Temp\\final.mp3");//destinationfile int temp; while( ( temp = sistream.read() ) != -1) { // System.out.print( (char) temp ); // to print at DOS prompt fostream.write(temp); // to write to file } fostream.close(); sistream.close(); fistream1.close(); fistream2.close(); } }