package com.anyun.exam.lib.util;
|
|
import android.content.Context;
|
import android.speech.tts.TextToSpeech;
|
import android.speech.tts.UtteranceProgressListener;
|
import android.util.Log;
|
|
import com.anyun.exam.lib.RemoteService;
|
|
import java.util.Locale;
|
|
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, 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, "onInit TextToSpeech.SUCCESS");
|
|
// TODO Auto-generated method stub
|
if (status == TextToSpeech.SUCCESS)
|
{
|
Log.d(TAG, "TextToSpeech.SUCCESS");
|
int result = tts.setLanguage(Locale.CHINA);
|
|
if (result == TextToSpeech.LANG_MISSING_DATA
|
|| result == TextToSpeech.LANG_NOT_SUPPORTED)
|
{
|
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(s);
|
}
|
}
|
|
@Override
|
public void onDone(String s) {
|
if (callback != null) {
|
callback.PlayDone(s);
|
}
|
}
|
|
@Override
|
public void onError(String s) {
|
if (callback != null) {
|
callback.PlayError(s);
|
}
|
}
|
});
|
}
|
|
public void speak(String text, String id) {
|
// tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
|
tts.speak(text, TextToSpeech.QUEUE_ADD, null, id);
|
}
|
|
public void speak(String text) {
|
// tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
|
tts.speak(text, TextToSpeech.QUEUE_ADD, null, "talk");
|
}
|
}
|