1

アプリケーションのメイン アクティビティで、次のようなインテントを発行しACTION_CHECK_TTS_DATAます。

Intent intent = new Intent();
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, 0);    

返されると、onActivityResult() で、利用可能な音声を一覧表示しようとします。

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
  if (requestCode == 0) {
    if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
        String availableVoices = intent.getStringExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES);
        Log.d("TTS engine installed", "Available voices: " + availableVoices);
        new TextToSpeech(this, this);
    }
  }
}

受信してCHECK_VOICE_DATA_PASSおり、すべて正常に動作していますが、Log.d() メッセージによると、intent.getStringExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES)null が返されます!

私の電話にはかなりの数の音声があり、インストールされて正常に動作していることを知っていますが、なぜnullをgetStringExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES)返すのですか?

私は何が欠けていますか?

4

1 に答える 1

1

getStringArrayListExtra()getStringExtra()の代わりにEXTRA_AVAILABLE_VOICES リストを取得しています。

詳細については、この回答を参照してください。

于 2012-08-22T18:01:53.677 に答える