Я играю с функциями Android TTS, и класс TextToSpeech имеет этот метод для установки прослушивателя, который получает уведомление после завершения воспроизведения TextToSpeech :
public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)
. Но OnUtteranceCompletedListener
определяется как public abstract class
. Поскольку мой MainActivity
уже расширяет Activity, он также не может расширять OnUtteranceCompletedListener
. Я мог бы использовать старый метод с OnUtteranceCompletedListener
, но он устарел :
public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`
. Почему OnUtteranceCompletedListener
не определяется как public static interface
? Я думаю написать свой собственный UtteranceProgressListenerImpl
, который будет просто вызывать метод MainActivity
s onDone
. Это правильный путь или есть лучшая/более чистая альтернатива?
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 */ }
}