0
私は電話がEditTextの中に中国語のテキストを話すことができるアプリを作ろうとしています。それはAPI 19の電話機でうまくいきます。API 23の電話機でテストすると、テキストを話すボタンを押しても何も表示されません。どうして? (音が電話でフルボリュームであり、それは、英語のテキストのために働く PS私は、フランス語とテキストに「ボンジュール」に言語を変更した場合、それは動作します。。)テキスト読み上げ機能が動作しないのはなぜですか?
私のコードはこれです:
public class MainActivity extends AppCompatActivity {
EditText subject;
Button submit;
TextToSpeech t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
subject = (EditText) findViewById(R.id.subject);
submit = (Button) findViewById(R.id.submit);
t1 = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
public void onInit(int status) {
t1.setLanguage(Locale.SIMPLIFIED_CHINESE);
}
});
// The button is called submit. The toast is there just to make sure that the t1.speak started to run.
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (android.os.Build.VERSION.SDK_INT > 20) {
t1.setLanguage(Locale.SIMPLIFIED_CHINESE);
String utteranceId = this.hashCode() + "";
t1.speak(subject.getText().toString(), TextToSpeech.QUEUE_FLUSH, null, utteranceId);
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
} else {
t1.setLanguage(Locale.SIMPLIFIED_CHINESE);
t1.speak(subject.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
});
}
}