2012-04-08 98 views
1

我想创建一个mp3文件的副本。我需要修剪该mp3文件。所以使用输入,输出流可以用于此我猜。可以正常文本文件类型的复制将能够创建一个可以播放的文件。有很多关于java文件处理的知识帮助我解决这个问题。Android编程复制音频文件(mp3)?

回答

2

MP3文件是二进制文件。所以只要你使用二进制文件操作拷贝MP3就会成功。

但是要修剪MP3文件,您需要了解MP3文件结构。 MP3文件由一系列MP3帧组成。每个帧以MP3头和数据开始。 MP3帧头包含信息,使用它可以找到帧长度。在http://www.id3.org/mp3Frame

上MP3头

更多细节所以只要你在复制帧的整数倍,你应该没问题。否则,解码器将忽略不完整的帧。

0

下面的代码是复制mp3文件或其他一切的解决方案。我从来没有经历过修剪部分。不过,我认为只需指定所需的缓冲区数量即可修剪文件。) 其实dst是目录中复制文件的名称。

private void copyFile(String src, String dst) { 
    FileInputStream inputStream; // create an input stream 
    FileOutputStream outputStream; // create an output stream 
    try { 
     inputStream = new FileInputStream(src); // create object 
     outputStream = openFileOutput(dst, Context.MODE_PRIVATE); // save your file in private mode, which makes it inaccessible by other applications 
     int bufferSize; 
     byte[] bufffer = new byte[512]; // I think logically here could be useful for trimming the file. I mean just copy an specified part of the file. 
     while ((bufferSize = inputStream.read(bufffer)) > 0) { 
      outputStream.write(bufffer, 0, bufferSize); 
     } 
     inputStream.close(); 
     outputStream.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

这是关于如何复制您的文件的建议,它会将它们复制到您的应用程序包名称下的内部存储器中。此外,我尚未测试饰件。所以,我不确定这一点。

一件事,你可以通过

getFilesDir(); 
让您的应用程序的路径目录