2

JAPANESEAndroid4デバイスで言語を使用してみます。

int value = tts.setLanguage(Locale.JAPANESE);

ただし、値は-2です。

これはチェックするための私のコードです

protected void check(int requestCode, int resultCode, Intent data) {
        if (requestCode == 0) {
            switch (resultCode) {
            case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS:
                tts = new TextToSpeech(this, this);
                break;
            case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA:
            case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA:
            case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:
                Intent installIntent = new Intent();
                installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                startActivity(installIntent);
                break;
            case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL:
            default:
                Log.e(TAG, "Got a failure. TTS not available");
            }
        }
    }

存在しない場合は言語をインストールしたいと思います。しかし、アプリがクラッシュします。これは正しいですか?私は何ができますか?日本語を習得するには?

4

1 に答える 1

2

結果コードが0に等しいことをテストすることからメソッドを開始し、次に結果コード値にスイッチを設定します(これはすでに0に等しいことがわかっています)。

    if (requestCode == 0) {
        switch (resultCode) {

コードに記述されているように、言語がインストールされていない場合、言語はtts初期化されず、それをさらに参照するとアプリケーションがクラッシュします。

Androidでのテキスト読み上げの概要でそれを行う正しい方法を見ることができます

よろしく。

于 2012-11-15T15:31:03.967 に答える