4

Android Froyo-api8 から Gingerbread api-10 まで、Text-To-Speech が常にシステムにインストールされているわけではありませんでした。少し前に、特定の API 以降、 TTSは Android の不可欠な部分になると聞きました。

新しいプラットフォームで実行されるコードでTTSの可用性チェックを回避したいと考えています。誰もこれについて経験がありますか?

Text-To-Speech エンジンが特定のプラットフォームで利用可能になるという公式ドキュメントはありますか?

詳しく説明すると、このコードを使用して TTS の存在を確認します。

        final Intent checkIntent = new Intent();
        checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
        sourceActivity.startActivityForResult(checkIntent, TTS_CHECK_REQ);

onActivityResult では、resultcode を CHECK_VOICE_DATA_PASS と照合して、成功でなければ失敗と見なします。

4

1 に答える 1

0

Android開発者のブログから:

TTS機能をサポートするすべてのAndroid搭載デバイスにはエンジンが付属していますが、一部のデバイスにはストレージが制限されており、言語固有のリソースファイルが不足している場合があります。ユーザーがこれらのリソースをインストールしたい場合、TTS APIを使用すると、アプリケーションはプラットフォームに言語ファイルの可用性を照会し、ダウンロードとインストールを開始できます。したがって、アクティビティを作成する際の最初の良いステップは、対応するインテントを持つTTSリソースの存在を確認することです:(インテントの例は次のとおりです)

私がこれから得たのは、エンジンがプラットフォームのコア部分であるということです。ただし、音声データはそうではなく、それがあなたの意図が実際にチェックしているものです。ただし、出荷時にすべてのデバイスにデータがインストールされているとは限らないため、このチェックを無効にすることはしません。

確かに、最新のギャラクシーまたはネクサスはそうするでしょう、しかしより安い電話はどうですか?本当に安いものはどうですか?ICSまたはJBを実行している可能性がありますが、製造元がスキップしたか、ディスク容量を節約しようとしていた可能性があります。カスタムROMはどうですか?Androidの「膨満感」を取り除くことに誇りを持っている人もいます。少なくとも1つが音声データを削除することをほぼ保証できます。

于 2013-02-12T03:11:36.970 に答える