Sub Process_Globals
Dim TTS1 As TTS
Dim VozOK as Boolean
....
Sub Activity_Create(FirstTime As Boolean)
TTS1.Initialize("TextoaVoz")
...
Sub Activity_Pause (UserClosed As Boolean)
if UserClosed Then TTS1.Release
...
Sub TextoaVoz_Ready (Success As Boolean)
VozOK = Success
' Puedes habilitar el botón de "hablar"
End Sub
Sub DarMensajeVoz (Texto As String)
if VozOK = False then Return
Try
TTS1.Speak(Texto,True)
Catch
End Try
End Sub
'Si quieres parar el mensaje hablado
Try
TTS1.Stop
Catch
End Try
Dim PhoneId As PhoneId
Dim EventoTextoaVoz As PhoneEvents
EventoTextoaVoz.InitializeWithPhoneState("AVISOS_EventoTextoaVoz",PhoneId)
Sub AVISOS_EventoTextoaVoz_TextToSpeechFinish (Intent As Intent)
' mensaje hablado finalizado, te puede valer para enviar otro mensaje
End sub
Hola, el código generico es muy simple:
B4X:Sub Process_Globals Dim TTS1 As TTS Dim VozOK as Boolean .... Sub Activity_Create(FirstTime As Boolean) TTS1.Initialize("TextoaVoz") ... Sub Activity_Pause (UserClosed As Boolean) if UserClosed Then TTS1.Release ... Sub TextoaVoz_Ready (Success As Boolean) VozOK = Success ' Puedes habilitar el botón de "hablar" End Sub Sub DarMensajeVoz (Texto As String) if VozOK = False then Return Try TTS1.Speak(Texto,True) Catch End Try End Sub 'Si quieres parar el mensaje hablado Try TTS1.Stop Catch End Try
Si quieres saber cuando acabó el mensaje hablado, lo tendrás que hacer con la libreria Phone:
B4X:Dim PhoneId As PhoneId Dim EventoTextoaVoz As PhoneEvents EventoTextoaVoz.InitializeWithPhoneState("AVISOS_EventoTextoaVoz",PhoneId) Sub AVISOS_EventoTextoaVoz_TextToSpeechFinish (Intent As Intent) ' mensaje hablado finalizado, te puede valer para enviar otro mensaje End sub
Saludos
Listo solucionado !!Hola desof:
El lenguaje se cambia con SetLanguage
Saludos