音频文件编码和解码

时间:2014-03-23 20:01:31

标签: java android audio encoding base64

在android中编码和解码音频文件的有效方法是什么? 我已经尝试过如下的Base64,但解码后文件大小会增加。 的编码

 ByteArrayOutputStream objByteArrayOS = new ByteArrayOutputStream();
        File file = new File(path);
        FileInputStream objFileIS;
        try {
            objFileIS = new FileInputStream(file);
            byte[] byteBufferString = new byte[1024];

        for (int readNum; (readNum = objFileIS.read(byteBufferString)) != -1;) {
            objByteArrayOS.write(byteBufferString, 0, readNum);
            System.out.println("read " + readNum + " bytes,");
            byte[] bytes = FileUtils.readFileToByteArray(file);


            strAttachmentCoded = Base64.encodeToString(bytes,
                    Base64.DEFAULT);

解码

byte[] decoded = Base64.decode(strAttachmentCoded,
                    Base64.DEFAULT);
            // byte[] decoded1 = Base64.decode(byteBinaryData1, 0);
            File file1 = new File(pathAudio);

            FileOutputStream os = new FileOutputStream(file1, true);
            os.write(decoded);

            os.close();

我希望将字符串格式的音频发送到服务器并根据用户要求检索相同的内容。

1 个答案:

答案 0 :(得分:1)

wikipedia:base64rfc3548)是我认为合适的选择方法。现在最常见的是我认为已经接管了wikipedia:uuencoding

回答这个问题。 。 。

  1. 您可以添加一些填充。 wikipedia article on base64给出了一个很好的填充示例。
  2. 或者您可以为音频字符串添加标题,包括长度。标题还可以包含其他控制数据,因此它可能是您想要包含的内容。