0

私がやっていることは、EditText とボタンがあることです。何か書いてボタンを押すと、アプリがその言葉をしゃべります。これはエミュレーターでは正常に機能していますが、電話で実行すると話せません。何が問題なのかわからない。それはコードの何かですか、それとも電話で何かを変更する必要がありますか。以下は私が使用したコードです。

Button btn1;
EditText txt1;
static final String[] texts={""};
TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn1=(Button)findViewById(R.id.button1);
    txt1=(EditText)findViewById(R.id.editText1);
    btn1.setOnClickListener(this);
    tts=new TextToSpeech(MainActivity.this,new TextToSpeech.OnInitListener() {

        @Override
        public void onInit(int status) {
            // TODO Auto-generated method stub
            if(status!=TextToSpeech.ERROR){
                tts.setLanguage(Locale.getDefault());
            }
        }
    });
}

    @Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
        //Random r=new Random();
        //String random=texts[r.nextInt(3)];
        String txt=txt1.getText().toString();
        if(txt!="")
        tts.speak(txt, TextToSpeech.QUEUE_FLUSH, null);     
}

他の同様の質問をチェックしましたが、満足のいく答えはありません。これは、技術的なサポートを受けるのに最適な場所です。この問題の解決策を提案してください。

4

2 に答える 2

1

私は解決策を得ました。私の電話には TTS 言語がインストールされていなかったので、手動でインストールしました: 設定 --> 言語と入力 --> テキストから音声への出力 --> 音声データのインストール。

于 2013-10-02T15:15:57.813 に答える
0

してみてください

if(!txt.equals("")) tts.speak(txt, TextToSpeech.QUEUE_FLUSH, null);

shutdown() メソッドを使用して、使用後に tts オブジェクトも解放します。

于 2013-09-30T06:50:45.867 に答える