1

我想创建录音机的近似功能已完成,但是,我需要为此功能实现暂停和恢复功能,我需要合并我的两个音频文件,但我无法获得准确的结果。我已经使用了序列输入流,但是这个只合并第一个文件这是我的代码

FileInputStream fis1 = new FileInputStream(mergeFile.get(0));
        @SuppressWarnings("resource")
        FileInputStream fis2 = new FileInputStream(mergeFile.get(1));

        Vector<FileInputStream> v = new Vector<FileInputStream>();
        v.add(fis1);
        v.add(fis2);
        Enumeration<FileInputStream> e = v.elements();
        String filepath = Environment.getExternalStorageDirectory()
                .getPath();
        File file = new File(filepath, "Test");
        file.mkdir();

        // InputStream inputStream1 = new FileInputStream(recording1);
        // InputStream inputStream2 = new FileInputStream(recording2);

        @SuppressWarnings("resource")
        SequenceInputStream sistream = new SequenceInputStream(e);
        FileOutputStream fostream = new FileOutputStream(file
                + "/myfile.mp3");

        int temp = 0;
        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();
        // recording1.close();
        // r/ecording2.close();
    }

当我播放最终结果时,它只播放第一个文件。

4

1 回答 1

1

使用此合并代码

import java.io.*;
import java.util.*;
class Merger
{
public static void main(String args[]) throws Exception
    {
    System.out.println("enter the filename");
    int a,no,i,j=1;
    String str,start;
    int ch;
    Console c=System.console();
    str=c.readLine();
    System.out.println("enter the destination file size");
    start=c.readLine();
    a=Integer.parseInt(start);


    File fr=new File(j+str);
    if(!fr.exists())
    {
        System.out.println("error");
        System.exit(0);
    }
        FileOutputStream fos=new FileOutputStream((str));
    for(i=0,j=1;    ;)
    {
        FileInputStream f=new FileInputStream(j+str);


        for(i=0;   (ch=f.read())!=-1  ;++i)
        fos.write(ch);
        j++;
            File fq=new File(j+str);
        if(!(fq).exists())
        {
            System.out.println("process completed");
            System.exit(0);
        }

    }
    }
}   

为此,您需要将 mp3 文件转换为输入流并将此输入流与第二个输入流添加。此代码用于文本文件,您也可以将其用于音频文件。

于 2013-09-04T12:29:04.490 回答