android– 如何让TTS将文件写入我的应用程序目录?

android– 如何让TTS将文件写入我的应用程序目录?,第1张

概述我想将TextToSpeech引擎的输出写入我的应用程序的缓存目录.为了让TTS在那里写,我首先必须赋予它权限.但我不知道怎么做.我理解通常可以通过将FileDescriptor交给它来解决这些问题,从而赋予访问特定文件的权限.但我不能用TTS做到这一点,因为TextToSpeech.synthesizeToFile方法只接受

我想将TextToSpeech引擎的输出写入我的应用程序的缓存目录.为了让TTS在那里写,我首先必须赋予它权限.但我不知道怎么做.我理解通常可以通过将fileDescriptor交给它来解决这些问题,从而赋予访问特定文件的权限.但我不能用TTS做到这一点,因为TextToSpeech.synthesizetofile方法只接受文件路径为String,没有fileDescriptor.那么该怎么办?

为了说明TTS真的没有权限写入我的应用程序的目录,这里是代码……:

TextToSpeech mTts = new new TextToSpeech(context, this);mTts.synthesizetofile(text, null, getCacheDir() + "/" + "speech.wav");

和调试器日志:

08-20 14:46:11.257: ERROR/TtsService(336): Can't create/data/data/com.myorg.myapp/cache/speech.wav due to exception java.io.IOException: Permission denIEd

解决方法:

TextToSpeech.synthesizeToFile()在实际设备中不起作用.它只适用于AVD.

我也一直在尝试使用原始的Pico TTS引擎和第三方TTS引擎,尝试写入sdcard或内部存储器(在root设备上):

context.getDir("soundfiles", Context.MODE_WORLD_WRITEABLE);

但是,正如您所指出的,该方法返回TextToSpeech.SUCCESS而不实际创建文件.

如果必须将TTS输出录制到WAV文件,请将耳机输出连接到PC中声卡的辅助输入,然后使用任何录制软件捕获该输出.

总结

以上是内存溢出为你收集整理的android – 如何让TTS将文件写入我的应用程序目录?全部内容,希望文章能够帮你解决android – 如何让TTS将文件写入我的应用程序目录?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1096129.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存