编程合并文件的部分/串联.wav文件

问题描述 投票:0回答:1

想追加一个.wav文件到另一个(喜欢这里Join two WAV files from Java?答案,但在Android中不能使用的AudioInputStream或AudioSystem)。所以,我看到你所拍摄的文件头(44个字节)从第二档,并连接,为第一个文件,以使连结文件的末尾,但我没有看到代码这样做。难道我尝试过自己和...:

public File combineWavFiles(File file1, File file2){
        byte[] bytes = new byte[(int)file2.length()];


        //compare file headers
        try {
            byte[] compBytes1 = new byte[44];
            byte[] compBytes2 = new byte[44];

            BufferedInputStream buf1 = new BufferedInputStream(new FileInputStream(file1));
            BufferedInputStream buf2 = new BufferedInputStream(new FileInputStream(file2));

            buf1.read(compBytes1, 0, 43);
            buf2.read(compBytes2, 0, 43);

            buf1.close();
            buf2.close();

            boolean equal = true;
            for (int i = 0; i < compBytes1.length; i++){
                if (compBytes1[i] != compBytes2[i]){
                    System.out.println("compBytes mismatch at "+i+": "+compBytes1[i]+" | "+compBytes2[i]);
                    equal = false;
                }
            }
            System.out.println("cWF Equal: "+equal);
        }
        catch (Exception e) {System.out.println("cWF(C) Error: "+e);}


        //read second files past 44 bytes contents
        try {
            BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file2));
            buf.read(bytes, 44, (int) file2.length()-44);
            buf.close();
        }
        catch (Exception e) {System.out.println("cWF(1) Error: "+e);}

        //write second files past 44 bytes contents to first file
        file1.setWritable(true);
        try{
            FileOutputStream output = new FileOutputStream(file1.getAbsoluteFile(), true);
            output.write(bytes);
            output.flush();
            output.close();
        }
        catch (Exception e) {System.out.println("cWF(2) Error: "+e);}

        return file1;
    }

该文件也变得越来越大,但它不能播放。 :/

编辑:比较文件头后,他们似乎不匹配,所以失配不存在这个问题。

java android
1个回答
0
投票

我发现这一点:http://soundfile.sapp.org/doc/WaveFormat/它可以帮助打印的实际字节,并将其与文件比较确保它适合

© www.soinside.com 2019 - 2024. All rights reserved.