| // Copyright 2011 Google Inc. All Rights Reserved. |
| |
| package android.speech.tts; |
| |
| /** |
| * Listener for events relating to the progress of an utterance through |
| * the synthesis queue. Each utterance is associated with a call to |
| * {@link TextToSpeech#speak} or {@link TextToSpeech#synthesizeToFile} with an |
| * associated utterance identifier, as per {@link TextToSpeech.Engine#KEY_PARAM_UTTERANCE_ID}. |
| * |
| * The callbacks specified in this method can be called from multiple threads. |
| */ |
| public abstract class UtteranceProgressListener { |
| /** |
| * Called when an utterance "starts" as perceived by the caller. This will |
| * be soon before audio is played back in the case of a {@link TextToSpeech#speak} |
| * or before the first bytes of a file are written to storage in the case |
| * of {@link TextToSpeech#synthesizeToFile}. |
| * |
| * @param utteranceId the utterance ID of the utterance. |
| */ |
| public abstract void onStart(String utteranceId); |
| |
| /** |
| * Called when an utterance has successfully completed processing. |
| * All audio will have been played back by this point for audible output, and all |
| * output will have been written to disk for file synthesis requests. |
| * |
| * This request is guaranteed to be called after {@link #onStart(String)}. |
| * |
| * @param utteranceId the utterance ID of the utterance. |
| */ |
| public abstract void onDone(String utteranceId); |
| |
| /** |
| * Called when an error has occurred during processing. This can be called |
| * at any point in the synthesis process. Note that there might be calls |
| * to {@link #onStart(String)} for specified utteranceId but there will never |
| * be a call to both {@link #onDone(String)} and {@link #onError(String)} for |
| * the same utterance. |
| * |
| * @param utteranceId the utterance ID of the utterance. |
| */ |
| public abstract void onError(String utteranceId); |
| |
| /** |
| * Wraps an old deprecated OnUtteranceCompletedListener with a shiny new |
| * progress listener. |
| * |
| * @hide |
| */ |
| static UtteranceProgressListener from( |
| final TextToSpeech.OnUtteranceCompletedListener listener) { |
| return new UtteranceProgressListener() { |
| @Override |
| public synchronized void onDone(String utteranceId) { |
| listener.onUtteranceCompleted(utteranceId); |
| } |
| |
| @Override |
| public void onError(String utteranceId) { |
| listener.onUtteranceCompleted(utteranceId); |
| } |
| |
| @Override |
| public void onStart(String utteranceId) { |
| // Left unimplemented, has no equivalent in the old |
| // API. |
| } |
| }; |
| } |
| } |