¿Por qué UtteranceProgressListener no es una interfaz?
Estoy jugando con las características TTS de Android y la clase TextToSpeech tiene este método para establecer un oyente que se notifica una vez que el TextToSpeech ha terminado de jugar:
public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)
Sin embargo, el OnUtteranceCompletedListener
se define como public abstract class
. Como mi MainActivity
ya extiende Actividad, no puede extender OnUtteranceCompletedListener
también. Podría utilizar el método más antiguo con un OnUtteranceCompletedListener
, pero esto es obsoleto:
- La interfaz de usuario de texto a voz es un android lento
- NullPointerException durante el uso de TTS en CustomListview
- Android: escucha un comando de voz (todo el tiempo)
- TTS omite al azar las primeras letras de la oración
- ¿Cómo instalar el motor TTS específico programáticamente en Android?
public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`
¿Por qué OnUtteranceCompletedListener
no está definido como public static interface
? Estoy pensando escribir mi propio UtteranceProgressListenerImpl
, que entonces llamará simplemente el MainActivity
s onDone
método. ¿Es esta la forma correcta o hay una alternativa mejor / más limpia?
private class UtteranceProgressListenerImpl extends UtteranceProgressListener { private MainActivity mainActivity; UtteranceProgressListenerImpl(MainActivity mA) { mainActivity = mA; } @Override public void onDone(String utteranceId) { mainActivity.onDone(utteranceId); } @Override public void onError(String utteranceId) { /* empty */ } @Override public void onStart(String utteranceId) { /* empty */ } }
- Problema de STOP de texto a voz
- Transmisión de notificaciones de texto a voz durante la conducción
- TTS android 4.1 jellybean
- ¿Por qué la intención de ACTION_CHECK_TTS_DATA es "incómoda de usar"?
- ¿Cómo comprobar si TtsService (o un servicio de Android) está detenido?
- Uso de la preferencia de lista en Android
- Android TextToSpeech: obtener la longitud de tiempo de audio
- Android texto a voz es muy lento para inicializar
No sé creo que debería ser una interfaz también. Yo uso este código para evitarlo. Está disponible aquí también.
Además, vote por este error que he enviado hace un tiempo.
public void setTts(TextToSpeech tts) { this.tts = tts; if (Build.VERSION.SDK_INT >= 15) { tts.setOnUtteranceProgressListener(new UtteranceProgressListener() { @Override public void onDone(String utteranceId) { onDoneSpeaking(utteranceId); } @Override public void onError(String utteranceId) { } @Override public void onStart(String utteranceId) { } }); } else { Log.d(TAG, "set utternace completed listener"); tts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() { @Override public void onUtteranceCompleted(String utteranceId) { onDoneSpeaking(utteranceId); } }); } }
- Cómo eliminar un permiso agregado debido a Google Fitness API 7.5.0
- Cambio de orientación: IllegalStateException cuando DialogFragment es visible