TextToSpeech エンジンからの出力をアプリのキャッシュ ディレクトリに書き込みたいと考えています。TTS がそこに書き込むためには、まず書き込み権限を与える必要があります。しかし、方法がわかりません。FileDescriptor
通常、このような問題は、特定のファイルへのアクセス許可を与えることで解決できることを理解しています。しかし、TextToSpeech.synthesizeToFile メソッドはファイル パスを文字列としてのみ受け入れるため、TTS ではそれを行うことはできません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