ユーザーには、英語やフランス語などの言語を選択するオプションがあります。ロケールをTTSエンジンに動的に設定する方法は?
アプリケーションはアクティビティと1つのバックグラウンドサービスを持ちます。そのため、アプリケーションが起動するとサービスが開始され、TTSエンジンはサービスの英語(onInit()メソッド)としてデフォルト言語で初期化されます。その特定のアクティビティが開始されるときに、ユーザーが設定する言語を設定する必要があります。
したがって、実行時にTTSエンジンで選択した言語ロケールを設定するにはどうすればよいですか?
私が観察したのは、その時点でサービスが開始されるのは、TTSエンジンだけがonInit()メソッド内のデフォルト言語で初期化され、インスタンスのアクティビティは利用できないため、言語の詳細が設定されていないため、私が直面している実際の問題は、onTitle()メソッドの外でmTts.setLanguage(Locale.FRENCH)を使用することができないため、TTSエンジンのロケールを変更する方法(ユーザがアクティビティから言語を選択したとき)あなたはこれをTTSの変化を反映しないものと呼んでいます。
この問題を解決するために私を助けてください。
onInitはサービスが初めて開始されたときに呼び出されるコールバックメソッドで、アンドロイドシステムで処理されるため、再度呼び出すことはできません。しかし、ええsetLanguageメソッドは、この問題を解決するのに役立ちます。あなたの助けに感謝します。 – piks