2012-04-08 96 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(); 
讓您的應用程序的路徑目錄