I have an app that's been working for years, but just stopped working, presumably because of some Android update (v11)
I would use TTS to speak some text, detect when speech finished via PhoneEvents TextToSpeechFinish event, then do something. TextToSpeechFinish recently just decided to stop triggering.
Manifest still set to android:targetSdkVersion="28" to fend off other issues on external folders I use.
A simple example of code would be
I'm getting around it by using
But I wondered if anyone knows why PhoneEvents stopped working, and maybe my workaround will help someone else.
I would use TTS to speak some text, detect when speech finished via PhoneEvents TextToSpeechFinish event, then do something. TextToSpeechFinish recently just decided to stop triggering.
Manifest still set to android:targetSdkVersion="28" to fend off other issues on external folders I use.
A simple example of code would be
B4X:
Sub Globals
Dim TTS1 As TTS
Dim PE As PhoneEvents
Dim mPhId As PhoneId
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
PE.InitializeWithPhoneState("PE", mPhId) 'can't remember why I used InitializeWithPhoneState rather than plain Initialize but it makes no difference
End If
TTS1.Initialize("")
End Sub
Sub btn_Click
TTS1.Speak("testing", False)
End Sub
Sub PE_TextToSpeechFinish (Intent As Intent)
Log("TextToSpeechFinish")
End Sub
I'm getting around it by using
B4X:
Sub btn_Click
TTS1.Speak("testing", False)
Dim jo As JavaObject = TTS1
Do While jo.RunMethod("isSpeaking",Null) = True
Sleep(250)
Loop
Log("TextToSpeechFinish")
End Sub