4

Androidプラットフォームで2つのオーディオファイルを1つのファイルにマージする方法. つまり、A と B という 2 つのオーディオ ファイルがある場合です。A の後に B によって追加される新しいオーディオ ファイル C を作成するコードを教えてください。オーディオ ファイルをバイト/ショート配列に変換する必要はありますか?? ..

私はこれが好きでしたが、最初のファイルのみを再生します。

            File firstFile=new File("/mnt/sdcard/Android/data/Dictation/Audio/Dict136.3gp");

            File secondFile=new File("/mnt/sdcard/Android/data/Dictation/Audio/Dict139.3gp");

            System.out.println("1 file:::::"+firstFile+"\n 2nd file::"+secondFile);


           FileInputStream fistream1;
        try {
            fistream1 = new FileInputStream(firstFile);
            FileInputStream fistream2 = new FileInputStream(secondFile);//second source file



            SequenceInputStream sistream = new SequenceInputStream(fistream1, fistream2);
            FileOutputStream fostream = new FileOutputStream("/mnt/sdcard/Android/data/Dictation/Audio/merged.3gp");//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
            }



            filePath="/mnt/sdcard/Android/data/Dictation/Audio/merged.3gp";
            playAudio(filePath);


            fostream.close();
            fistream1.close();
            fistream2.close();

前もって感謝します。

4

2 に答える 2

0

これを使っFile Input/output Stream てみることができます。バイト配列のファイルを読み取るには、

byte[] buffer = new byte[FILE_SIZE_HERE];
FileInputStream fs = new FileInputStream(file);
int bytesRead = 0;
bytesRead = fs.read(buffer, 0, FILE_SIZE_HERE);

ここに、bufferファイルのバイト配列が含まれています。このようにして、両方のファイルのバイト配列を取得できます。ボットファイルのバイト配列を取得した2番目のステップでは、両方のバイト配列を1つの単一配列にコピーする必要があります。次に、これを使用してこれ(3番目の新しい配列)を新しいファイルに書き込むことができます。

FileOutputStream fout = new FileOutputStream(tempFile, true);
fout.write(data);
fout.close();

data両方のアレイをマージした後に取得する新しい3番目のアレイはどこにありますか

編集: 2つのアレイを組み合わせる方法についてはこちらをご覧ください

これがお役に立てば幸いです。

于 2013-01-23T07:22:23.983 に答える