私はAndroidのTTS機能をいじっています.TextToSpeechクラスには、TextToSpeechの再生が終了すると通知されるリスナーを設定するこのメソッドがあります:
public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)
しかし、OnUtteranceCompletedListener
は として定義されpublic abstract class
ます。MainActivity
すでにアクティビティを拡張しているため、同様に拡張することはできませんOnUtteranceCompletedListener
。で古い方法を使用できますOnUtteranceCompletedListener
が、これは非推奨です。
public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`
OnUtteranceCompletedListener
がとして定義されないのはなぜpublic static interface
ですか? sメソッドUtteranceProgressListenerImpl
を呼び出すだけの独自の を作成することを考えています。これは適切な方法ですか、それともより良い/よりクリーンな代替手段はありますか?MainActivity
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 */ }
}