我正在创建一个应用程序,我必须在其中录制语音并将其保存,然后再播放相同的内容。我想将录制的音频保存在应用程序的原始文件夹中。我应该如何给出raw文件夹的目录路径来保存我的音频文件。
答案 0 :(得分: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
}
}
这个或它的变体应该对你有所帮助。
答案 1 :(得分: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();