Добавление двух файлов MP3 в Android

Как я могу добавить два аудиофайла в android. Я пробовал это, но это не работает. Пожалуйста, дайте мне решение. Мне нужно объединить файлы с SD-карты, которые представляют собой A.mp3 и B.mp3. Когда я объединяю вызовы методов объединения, я хочу, чтобы они оба были одним файлом на SD-карте, то есть C.mp3 .... ....

File original= new File("/mnt/sdcard/A.mp3");
 File temp=new File("/mnt/sdcard/B.mp3");
        Log.i("...............",""+path);


        try {
            File outFile= new File("/mnt/sdcard/C.mp3 ");

            DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(outFile)));





        //  FileOutputStream out=new FileOutputStream(outFile);

            //OutputStream out = new FileOutputStream(original,true);


            int m,n;
            m=(int) temp.length();
            n=(int) original.length();

             byte[] buf1 = new byte[m];
             byte[] buf2 = new byte[n];

             byte[] outBytes = new byte[m+n];


             DataInputStream dis1=new DataInputStream(  new BufferedInputStream(new FileInputStream(original)));
             DataInputStream dis2=new DataInputStream(  new BufferedInputStream(new FileInputStream(temp)));



             dis1.read(buf1, 0, m);
             dis1.close();

             dis2.readFully(buf2, 0, n);
             dis2.close();


             out.write(buf1);
             out.write(buf2);
            out.flush();


                //in.close();
                out.close();
                System.out.println("File copied.");


        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Мне нужно объединить файл A.mp3, B.mp3 в C.mp3....


person Muhamed Riyas M    schedule 26.02.2013    source источник
comment
Формат mp3 защищен авторским правом, вы не можете сделать то же самое, если у вас нет действительной лицензии   -  person Cris    schedule 26.02.2013


Ответы (2)


В дополнение к ответу знающего человека вы можете обратиться к спецификации формата файла mp3 для получения дополнительной информации ЗДЕСЬ и ЗДЕСЬ.

Есть много вещей, которые вы должны учитывать при сшивке двух mp3-файлов. Мягко говоря, они должны быть закодированы одной и той же программой, с одинаковыми настройками или, если мы говорим о голосе, взяты с одного микрофона, заданы с одинаковыми настройками и т.д.

person g00dy    schedule 26.02.2013

import java.io.*;
public class TwoFiles
{
    public static void Main(String args[]) throws IOException
    {
        FileInputStream fistream1 = new FileInputStream("C:\\Temp\\1.mp3");
        FileInputStream fistream2 = new FileInputStream("C:\\Temp\\2.mp3");
        SequenceInputStream sistream = new SequenceInputStream(fistream1, fistream2);
        FileOutputStream fostream = new FileOutputStream("C:\\Temp\\final.mp3");

    int temp;

    while( ( temp = sistream.read() ) != -1)
    {

        fostream.write(temp);  
    }
    fostream.close();
    sistream.close();
    fistream1.close();
    fistream2.close();
}
}

надеюсь понятно

person knowbody    schedule 26.02.2013
comment
Я попробовал ваш код и получил размер нового файла как всего два файла, но когда я играю в этот объединенный новый файл, он воспроизводит только первый... вы можете мне помочь с этим - person Gaurav Balbhadra; 19.12.2015