簡體   English   中英

Android編程復制音頻文件(mp3)?

[英]Android programming copy an audio file(mp3)?

我正在嘗試創建一個 mp3 文件的副本。我需要修剪該 mp3 文件。所以使用輸入,output stream 我猜可以用於此。普通文本文件類型的復制是否能夠創建一個文件可以播放。熟悉 java 中文件處理的人可以幫助我解決這個問題。

MP3文件是二進制文件。 所以只要你復制MP3使用二進制文件操作復制就會成功。

但是,要修剪 MP3 文件,您需要了解 MP3 文件結構。 MP3 文件由一系列 MP3 幀組成。 每個幀都以 MP3 header 開頭,然后是數據。 MP3 幀 header 包含信息,使用它可以找到幀長度。

有關 MP3 header 的更多詳細信息,請訪問http://www.id3.org/mp3Frame

所以只要你復制整數幀,你應該沒問題。 即便如此,解碼器也會忽略不完整的幀。

下面的代碼是復制 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();
    }
}

這是關於如何復制文件的建議,它將以您的應用程序 package 名稱將它們復制到內部存儲中。 此外,我還沒有測試裝飾部分。 所以,我不確定。

還有一件事,您可以通過以下方式獲取應用程序的路徑目錄

getFilesDir();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM