Ich lese viele Blogs, aber immer noch mit dem Problem konfrontiert mit dem Sprechen der aktualisierten Textzeichenfolge nach dem Aufruf von Shutdown. Wenn Sie das nächste Mal auf "Play" klicken, sprechen Sie eine alte Saite und eine neue nach der anderen. Hier ist der Code:Queue_Flush Nicht spülen Text und Sprechen aktualisiert
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.batful);
try {
editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
// editor.putBoolean("b", true).apply();
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
value = sharedPreferences.getString("personalmessage", null);
Log.e("Voice Message create: ", value);
value = sharedPreferences.getString("personalmessage", null);
textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int i) {
if (i != TextToSpeech.ERROR) {
textToSpeech.setLanguage(Locale.ENGLISH);
/* textToSpeech.setLanguage(Locale.getDefault());*/
final Handler h = new Handler();
h.postDelayed(new Runnable() {
public void run() {
if (Build.VERSION.SDK_INT >= 21) {
textToSpeech.speak(value, TextToSpeech.QUEUE_FLUSH, null, null);
} else {
textToSpeech.speak(value, TextToSpeech.QUEUE_FLUSH, null);
}
h.postDelayed(this, delay);
}
}, delay);
}
}
});
stopvol = (TextView)
findViewById(R.id.stop);
stopvol.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
turnoffbeep(getApplicationContext());
finish();
}
});
} catch (
Exception e)
{
e.printStackTrace();
}
}
static void turnoffbeep(Context contextforstat) {
Log.i(TAG, "Turn Off beep");
if ((textToSpeech != null)) {
// textToSpeech.stop();
textToSpeech.shutdown();
}
}
Wenn Sie sehen, wird QUEUE_FLUSH hinzugefügt, aber die Ergebnisse werden nicht erreicht. Wenn ich mir die Android-Dokumentation anschaue, glaube ich, dass ich richtig folge. Immer noch jemand hilft mir bei der Suche nach dem richtigen Grund für das Löschen alten Text, pls
Nur andere Tatsache, wenn ich die Eingabe von gemeinsamen Präferenz ändern, um Text zu bearbeiten, spricht es neuesten Text nicht alt.