TTS - CHECK_VOICE_DATA_FAIL - Motor prüfen
Ich habe ein seltsames Problem mit der TTS-Engine und ich kann nicht herausfinden, warum / wo mein Fehler ist. Wird stundenlang nach einer Lösung gesucht, aber ohne nennenswerte Ergebnisse.
Wenn ich das benutzeAPI-Demo-Code alles funktioniert gut und ich kann für alle installierten sprachen die stimme hören.
Aber wenn ich vorbeischauediese Methode Ich erhalte CHECK_VOICE_DATA_FAIL als Rückgabecode für benutzerdefinierte TTS-Engines (was ich für alle erforderlichen Sprachen benötige, Standard-Google ist nicht genug).
Was vermisse ich hier? Wie kann ich die Verfügbarkeit der TTS-Motoren prüfen? Ich weiß, dass dies nicht unbedingt ein Code-Problem ist, aber für andere Programme scheint dies zu funktionieren.
Ich habe einige andere Apps von der installiertSVox Website und diese scheinen auf allen meinen Geräten zu funktionieren, während der folgende Code fehlschlägt.
Als Beispiel,TalkToMeClassic prüft die Verfügbarkeit des Motors und es funktioniert.
Was wird hier anders gemacht?
Hier ist mein genauer Code (der eine Kopie des Artikels ist):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, 0x99);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0x99) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
mTts = new TextToSpeech(this, this);
} else {
Log.e("TTS","Missing Data:" + resultCode );
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}