【发布时间】:2011-12-26 14:21:00
【问题描述】:
我对 Android 还很陌生,正在写入某个文件。 我想要做的是使用 TextToSpeech.synthesizeToFile() 方法来编写音频文件。这是有效的,除了当应用程序退出时 TextToSpeech 引擎会自动删除它创建的文件。所以我然后尝试在另一个目录中复制创建的文件。为此,我使用了 org.apache.commons.io.FileUtils 包的 copyFile() 方法。使用此方法只会导致新创建的文件大小为 0。 我正在使用 Environment.getExternalStorageDirectory() 来获取适当的外部存储目录。 我尝试写入现有目录,例如 /mnt/sdcard/Ringtones/ 以及 /mnt/sdcard/ 下新创建的目录...
我检查的另一件事是 File.canWrite() 对目标文件的结果。这实际上返回 false,这可能是一个线索。但是 File.setWritable() 方法似乎不存在来改变它。
我正在使用如下代码,但我没有看到任何异常被抛出
try {
File from = new File(tempDestFile);
File to = new File(permDestFile);
FileUtils.copyFile(from, to);
} catch(IOException e) {
Log.e(T, "Error copying file", e);
} catch(NullPointerException e) {
Log.e(T, "Error copying file", e);
}
关于我可以尝试什么的任何想法? 到目前为止,我没有发现任何东西对我有很大帮助。
谢谢!对于此类主题,我非常感谢这样一个很棒的资源。
【问题讨论】:
-
看来问题不在于写入新文件,而在于从使用 TextToSpeech.synthesizeToFile() 创建的文件中读取。我似乎无法正确读取此文件。我无法复制它(无论是手动还是以编程方式)。真奇怪。有没有人成功使用过 TextToSpeech.synthesizeToFile()?
标签: android file-io text-to-speech file-copying