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.
- ¿En qué circunstancias TextToSpeech.isSpeaking () devuelve true?
- Problemas con TTS en el Samsung Galaxy S3
- Sistema lengua turca para el texto al discurso
- ¿Cómo saber cuándo se termina el TTS?
- Otras opciones de la biblioteca de Android TextToSpeech
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); } }
- TextToSpeech.setEngineByPackageName () no establece nada
- Android TTS no habla gran cantidad de texto
- La interfaz de usuario de texto a voz es un android lento
- ¿Cómo puedo guardar mi android tts salida en un archivo wav?
- Android TTS comprueba la configuración regional admitida con datos de voz que faltan o no se han descargado
- TextToSpeech, playEarcon y archivos .wav
- La salida TTS siempre va a A2DP
- TextToSpeech.OnInitListener.onInit (int) que se llama continuamente
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.
- Android – ¿cómo startActivity o startActivityForResult afectará el flujo lógico de la actividad actual?
- Cerrar instancia de Realm después de la ejecución