2011-07-18 49 views
11

¿Puede alguien decir cómo combinar/fusionar dos archivos multimedia en uno?Cómo combinar dos archivos mp3 en uno (combinar/unir)

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 encuentran en la transmisión de audio. Cualquiera puede decirme?

PS y por qué no puedo iniciar recompensa :(

+1

Para a p.s: la pregunta aún no tiene 2 días; lea más aquí: http://meta.stackexchange.com/questions/54994/what-would-prevent-me-from-adding-a-bounty-to-a-question/54996#54996 – Adinia

+1

Hola, quiero dos fusionar dos archivos de audio mp3 en un archivo.Si sabes cómo fusionar, ayúdame.gracias de antemano – sandeep

Respuesta

4

considerar dos casos para .mp3 archivos:?

  • Archivos con la misma frecuencia de muestreo y el 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 transcodificación o reencripción. Una opción es usar una biblioteca externa como lame/FFMPEG a través de JNI para volver a codificar.

+0

no, no me sirve :(Creo que esperaré 2 días y comenzaré una recompensa ... tal vez la gente pueda ayudar – Peter

+0

@Peter, ¿puede explicar qué formatos de archivos multimedia desea fusionar? –

+0

mp3. No necesito agregar un archivo a otro. Necesito dos sonidos (por ejemplo: primer archivo: 1 minuto, segundos 35 segundos) combinar con uno : | – Peter

10
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(); 
    } 
} 
+0

¿se anexa audio entre sí o está mezclando el audio? –

+0

@ArslanAhmad esto es para agregar audio. SequenceInputStream es la parte central de este código. Un SequenceInputStream concatena los dos FileInputStreams como se menciona en los documentos. Este código no se mezclará, sino que se unirá. –

+0

@shiva tengo el mismo código pero no funciona para mí aquí está mi enlace de pregunta ayúdame. http: // stackoverflow.com/questions/35340025/how-to-merge-two-or-more-mp3-audio-file-in-android –

Cuestiones relacionadas