2012-07-04 3 views
3

Je travaille dans android. Je veux fusionner deux fichiers wave et je veux créer un troisième fichier. Pour cela, je crée deux flux d'entrée, puis j'essaie d'écrire ces flux d'entrée dans un fichier de flux de sortie.Android Impossible de fusionner deux fichiers wave

Ceci est mon code: -

File file = new File("/sdcard/z.wav"); 
     File file1 = new File("/sdcard/zz.wav"); 
     InputStream is = new FileInputStream(file); 
     InputStream is1 = new FileInputStream(file1); 

     // Get the size of the file 
     long length = file.length(); 
     long length1 = file1.length(); 


     // Create the byte array to hold the data 
     byte[] bytes = new byte[(int)length]; 
     byte[] bytes1 = new byte[(int)length1]; 

     // Read in the bytes 
     int offset = 0; 
     int numRead = 0; 
     while (offset < (int)length &&(numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) { 
      offset += numRead; 
     } 

     int offset1 = 0; 
     int numRead1 = 0; 
     while (offset1 < (int)length1 &&(numRead1=is1.read(bytes1, offset1, bytes1.length-offset1)) >= 0) { 
      offset1 += numRead1; 
     } 





     FileOutputStream fos=new FileOutputStream("sdcard/guruu.wav"); 
     Log.v("Trying Activity","before first write"); 
     fos.write(bytes); 

     fos.write(bytes1,0,bytes1.length); 
     fos.write(bytes); 
     fos.close(); 

     is.close(); 
     is1.close(); 

quand je joue le fichier de sortie guruu.wav alors ce que le fichier de jeu de fichier1, il ne joue pas le contenu de fichier2. Veuillez me suggérer quelle erreur j'ai faite. Y a-t-il un autre moyen de le faire?

Je suis très nouveau dans ce s'il vous plaît ne votez pas bas.

Merci d'avance.

Répondre

0

Vous ne fusionnez pas les données, vous les concaténez simplement.

Ainsi vous vous retrouvez avec un fichier contenant:

  • tête de fichier WAV pour les données audio fichier 1
  • pour fichier 1
  • tête du fichier WAV pour le fichier 2
  • de données audio pour le fichier 2

Naturellement, quand quelqu'un lit ce fichier pour le lire, ils le voient comme

  • données audio-tête du fichier WAV
  • quelques données à ordures à la fin du fichier qu'ils ne sont même pas à considérer.

Pour vraiment fusionner ces fichiers, vous devez considérer correctement le internal structure of the WAV files.

Questions connexes