2012-02-17 21 views
2

私は音声を録音して保存して後で再生する必要があるアプリケーションを作成しています。録音されたオーディオをアプリケーションの生のフォルダに保存します。私はどのように私のオーディオファイルを保存するために生のフォルダのディレクトリパスを与える必要があります。録音したオーディオファイルをアプリケーションの生のフォルダに保存する

+0

このファイルをsdcardまたは電話機に直接保存しようとしていますか? – nemesisfixx

+1

いいえSDカードにファイルを保存したくない場合デバイスにSDカードがあるかどうかわかりませんアプリケーションのres/rawフォルダにファイルを保存しようとしています – Nishant

答えて

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

必要/データ/データ/ package_name>/filesは便利です。 – user370305

2

アプリケーションをビルドした後にリソースを書き換えることはできません。リソースに置かれたファイルを使ってできることは、それらをメモリに読み込んで変更し、結果をsdcardやその他の提供されたストレージエリアに保存することです。アプリケーションによって作成されたファイルは、アプリケーションがアンインストールされたときにも削除されるため、心配する必要があります。あなたが許可を必要とする

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

その後、あなたはデータやファイル名に送信することができます。このような何かをしようと、SDカードに保存するには

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 
    } 
} 

これを、またはそのバリエーションが私の考えを助けるはずです。

関連する問題