合并音频文件

问题描述

| 我录制了一些音频文件,并将它们存储在sdcard中。我需要将所有录制的文件合并为一个音频文件。我用下面的代码。我的问题是合并的文件仅包含第一个记录的文件。任何建议...在readAudioAsstream()方法中,我尝试合并文件
public void readAudioAsstream() {
    getFullAudioPath()

    File f;
    FileInputStream ins = null;

    try 
    {
        String comfile=getCombineFile();
        //FileOutputStream fos=new FileOutputStream(comfile);
        Log.d(\"combined file\",comfile);
        File file=new File(comfile);
        RandomAccessFile raf = new RandomAccessFile(file,\"rw\");
        Log.d(\"path size\",Integer.toString(audFullPath.size()));
        for (int i=0;i<audFullPath.size();i++)
        {   
            String filepath=audFullPath.get(i);
            Log.d(\"Filepath\",filepath);
            f=new File(audFullPath.get(i));
            fileContent = new byte[(int)f.length()];
            ins=new FileInputStream(audFullPath.get(i));
            int numofbytes=ins.read(fileContent);
            System.out.println(\"Number Of Bytes Read===========>>>\"+numofbytes);
            raf.seek(file.length());
            raf.write(fileContent);
        }
    }
    catch (FileNotFoundException e1) {
        e1.printstacktrace();
    }
    catch (IOException e) {
        e.printstacktrace();
    }           
}
public ArrayList<String> getFullAudioPath() {
    ArrayList<String> fullPath=new ArrayList<String>();
    fullPath.clear();

    String path=filePath();
    File f=new File(path);
    if(f.isDirectory())
    {
        File[] files=f.listFiles();
        for(int i=0;i<files.length;i++)
        {
            String fpath=path+File.separator+files[i].getName().toString().trim();
            System.out.println(\"File Full Path======>>>\"+fpath);
            fullPath.add(fpath);
        }
    }       
    return fullPath;
}
public String filePath() {
    String newFolderName=\"/MyAudio\";
    String extstoredir=Environment.getExternalStorageDirectory().toString();
    String newPath=extstoredir+newFolderName;
    return newPath;
}

public String getCombineFile() {
    String newFolderName=\"/MyComAudio\";
    String extstoredir=Environment.getExternalStorageDirectory().toString();
    String path=extstoredir+newFolderName;
    File myNewPath=new File(path);
    if(!myNewPath.exists()) {
        myNewPath.mkdir();
    }
    String audname=\"ComAudio\";
    String ext=\".3gp\";
    File audio=new File(myNewPath,audname+ext);             

    if(audio.exists()) {
        audio.delete();
    }
    String audpath=path+\"/\"+audname+ext;
    Log.d(\"Combined audio file\",audpath);
    return audpath;
}
    

解决方法

您不能仅通过在另一个
.3gp
文件的末尾写入一个ѭ1end文件的内容来合并两个
.3gp
文件。