I play with Android TTS features, and the TextToSpeech class has this method for setting a listener that gets notified when TextToSpeech is finished playing:
public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)
But OnUtteranceCompletedListenerdefined as public abstract class. Since mine MainActivityalready extends Activity, it cannot extend as well OnUtteranceCompletedListener. I could use an older method with OnUtteranceCompletedListener, but this is deprecated:
public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`
Why OnUtteranceCompletedListenernot defined how public static interface? I am going to write my own UtteranceProgressListenerImpl, which then simply calls the method MainActivity onDone. Is this right, or is there a better alternative?
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) { }
@Override
public void onStart(String utteranceId) { }
}
source
share