0

我试图删除我刚刚录制的 .wav 文件的一部分,事情是我知道 wav 文件包含 44 字节的标头数据,但我想知道如何从录制的 .wav 文件的开头修剪分钟,任何答案将不胜感激。在此先感谢,下面是我尝试删除 10 秒时的示例代码(假设它的 100000 字节)

     byte fileContent[]= new byte[(int)inputFile.length()];
       try {
        fis.read(fileContent);
        } catch (IOException e) {
       // TODO Auto-generated catch block
            e.printStackTrace();
        }// Reads the file content as byte from the list.
        /* copy the entire file, but not the first 6 bytes */
        byte[] headerlessFileContent = new byte[fileContent.length-1000000];
        for(int j=1000000; j<fileContent.length;j++){
            headerlessFileContent[j-1000000] = fileContent[j];
        }
        fileContent = headerlessFileContent;
        /* Write the byte into the combine file. */
        try {
    fos.write (fileContent);
    } catch (IOException e) {
    e.printStackTrace();
        }
        Toast.makeText(this, "End!!!!!!!", Toast.LENGTH_LONG).show();   
    }
4

1 回答 1

0

您正在删除 44 字节的标头以及音频部分的 999956 字节。你需要做的是:

  1. 将 44 字节标头从旧文件复制到新文件
  2. 从旧文件复制到新文件,从位置 10000044 开始(标题的结尾加上 10 秒)。

此建议假定标题不包含文件的长度!如果是这样,那么您必须找出标头的格式,并用新文件的正确长度重写标头

于 2013-10-19T22:46:11.777 回答