Ejecución de TTS Android en un servicio

Estoy tratando de conseguir TTS de Android para ejecutar dentro de un servicio, pero no tengo ni idea de por qué no funciona, compila, no se bloquea, pero simplemente no funciona.

Sin embargo, la notificación Toast funciona.

package alarm.test; import android.app.Service; import com.google.tts.TextToSpeechBeta; import android.content.Intent; import android.os.IBinder; import android.widget.Toast; public class MyAlarmService extends Service { private TextToSpeechBeta myTts; private TextToSpeechBeta.OnInitListener ttsInitListener = new TextToSpeechBeta.OnInitListener() { public void onInit( int arg0, int arg1 ) { myTts.speak("", 0, null); } }; @Override public void onCreate() { // TODO Auto-generated method stub myTts = new TextToSpeechBeta( this, ttsInitListener ); Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_LONG).show(); } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub myTts.speak("something is working", TextToSpeechBeta.QUEUE_FLUSH, null); Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG).show(); return null; } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG).show(); } @Override public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub super.onStart(intent, startId); Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show(); } @Override public boolean onUnbind(Intent intent) { // TODO Auto-generated method stub Toast.makeText(this, "MyAlarmService.onUnbind()", Toast.LENGTH_LONG).show(); return super.onUnbind(intent); } } 

Hola hombre se puede hacer así: es el trabajo para mí. Debe crear una actividad para iniciar este servicio, como esto: this.startService (intent)

 public class TTSService extends Service implements TextToSpeech.OnInitListener{ private String str; private TextToSpeech mTts; private static final String TAG="TTSService"; @Override public IBinder onBind(Intent arg0) { return null; } @Override public void onCreate() { mTts = new TextToSpeech(this, this // OnInitListener ); mTts.setSpeechRate(0.5f); Log.v(TAG, "oncreate_service"); str ="turn left please "; super.onCreate(); } @Override public void onDestroy() { // TODO Auto-generated method stub if (mTts != null) { mTts.stop(); mTts.shutdown(); } super.onDestroy(); } @Override public void onStart(Intent intent, int startId) { sayHello(str); Log.v(TAG, "onstart_service"); super.onStart(intent, startId); } @Override public void onInit(int status) { Log.v(TAG, "oninit"); if (status == TextToSpeech.SUCCESS) { int result = mTts.setLanguage(Locale.US); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { Log.v(TAG, "Language is not available."); } else { sayHello(str); } } else { Log.v(TAG, "Could not initialize TextToSpeech."); } } private void sayHello(String str) { mTts.speak(str, TextToSpeech.QUEUE_FLUSH, null); } } 

Bueno, hacer esta pregunta me dio una respuesta mejor de lo que podía encontrar con google.

Vaya a la respuesta a esta pregunta y cámbiela para que se ajuste a su solicitud.

TTS no habla desde un servicio mientras que lo hace desde una actividad en android

https://developer.android.com/reference/android/speech/tts/TextToSpeechService.html

Desde API Nivel 14, android ha añadido una clase de servicio TextToSpeech predeterminada que hace lo que desea.

  • TextToSpeech.setEngineByPackageName () devuelve el éxito incluso cuando el paquete no está disponible
  • KitKat tarda 6 segundos más que Froyo para reaccionar a TextToSpeech.speak () en primera llamada
  • Android TTS (texto a voz) no pronuncia letra única correctamente
  • Cómo deshabilitar la accesibilidad "TalkBack" en su aplicación?
  • Lenguaje hindi
  • ¿Cómo interpretar audiblemente la pronunciación IPA en Android?
  • Pausa en el TTS android
  • Cómo encuestar los motores TTS disponibles para los idiomas disponibles sin instanciar cada uno y wating para init
  • Referencia no resuelta en el anonimo oyente de Kotlin
  • Problema de STOP de texto a voz
  • Pausa tono del teléfono mientras habla a través de texto a voz y luego reanudar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.