| | |
| | | |
| | | import android.content.Context; |
| | | import android.speech.tts.TextToSpeech; |
| | | import android.speech.tts.UtteranceProgressListener; |
| | | import android.util.Log; |
| | | |
| | | import com.anyun.exam.lib.RemoteService; |
| | |
| | | public class Speaker { |
| | | private Context context; |
| | | private TextToSpeech tts; |
| | | private SpeakerCallback callback = null; |
| | | |
| | | final public String TAG = Speaker.class.getCanonicalName(); |
| | | |
| | | public Speaker(final Context context) { |
| | | public Speaker(final Context context, final SpeakerCallback cb) { |
| | | // TODO Auto-generated constructor stub |
| | | Log.d(TAG, "Speaker Init..."); |
| | | this.context = context; |
| | | this.callback = cb; |
| | | |
| | | tts = new TextToSpeech(context, new TextToSpeech.OnInitListener() { |
| | | @Override |
| | | public void onInit(int status) { |
| | |
| | | { |
| | | Log.d(TAG, "TextToSpeech.LANG_NOT_SUPPORTED"); |
| | | } |
| | | if (callback != null) { |
| | | callback.PlayInit(true); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | tts.setOnUtteranceProgressListener(new UtteranceProgressListener() { |
| | | @Override |
| | | public void onStart(String s) { |
| | | if (callback != null) { |
| | | callback.PlayStart(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onDone(String s) { |
| | | if (callback != null) { |
| | | callback.PlayDone(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(String s) { |
| | | if (callback != null) { |
| | | callback.PlayError(); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void speak(String text) { |
| | | Log.d(TAG, "SPEAK"); |
| | | // tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); |
| | | tts.speak(text, TextToSpeech.QUEUE_ADD, null, "speech"); |
| | | } |