2012-02-17 21 views
2

我正在創建一個應用程序,在該應用程序中,我必須錄製聲音並將其保存並稍後播放。我想將錄製的音頻保存在應用程序的原始文件夾中。我應該如何給出原始文件夾的目錄路徑來保存我的音頻文件。如何將錄製的音頻文件保存在應用程序的原始文件夾中

+0

你試圖將這個文件保存到SD卡或直接在手機上? – nemesisfixx 2012-02-17 11:33:41

+1

不,我不想保存在SD卡上的文件bcoz一個設備可能或不可能有SD卡。我試圖將文件保存在我的應用程序的res/raw文件夾中 – Nishant 2012-02-17 11:35:07

回答

2

對不起,你不能。

由於Android .apk file is read-only,您不能在包層次結構中編寫任何文件(如res,raw,asset)。

更好地將其存儲在應用程序的包(內部存儲)或外部存儲中。

更新:

這將創建應用程序的內部存儲的文件。

//content is base64 string you can use directly use FileInputstream's byte 
byte[] pdfAsBytes = Base64.decode(content, 0); 
//filePath just filename of your audio file this will create a file in /data/data/<package_name>/files 
FileOutputStream fos = openFileOutput(filePath, Context.Context.MODE_PRIVATE); 
fos.write(pdfAsBytes); 
fos.close(); 
+0

For your need/data/data/< package_name>/files是有用的。 – user370305 2012-02-17 11:48:25

2

構建應用程序後無法重新編寫資源。你可以用放置在資源中的文件做的最好的事情是將它們讀入內存,修改它們,並將結果保存到SD卡或其他提供的存儲區域。當您的應用程序被卸載時,由應用程序創建的文件也會被刪除,所以需要擔心。

要保存到SD卡,嘗試這樣的事情:

您需要的權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

然後你就可以在發送數據和文件名:

public void saveFileToCard(byte[] data,String filename) { 
    File file = new File(Environment.getExternalStorageDirectory(), filename); 
    FileOutputStream fos; 
    try { 
     fos = new FileOutputStream(file); 
     fos.write(data); 
     fos.flush(); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
    // handle exception 
    } catch (IOException e) { 
    // handle exception 
    } 
} 

此,或者它的一個變種應該幫助你,我想。

相關問題