0
我正在將TextToSpeech合併到GCM gcmquickstart示例中。 收到來自谷歌服務器的消息後,我嘗試用它說話。tts在說話前總是去ondestroy。 但如果使用調試模式,tts可以正常工作。 的代碼如下:TextToSpeech與GCM不起作用
public class MyGcmListenerService extends GcmListenerService implements TextToSpeech.OnInitListener {
private static final String TAG = "MyGcmListenerService";
private TextToSpeech tts;
private String ttsMessage;
public void onInit(int code) {
if (code == TextToSpeech.SUCCESS) {
if (tts != null) {
if (Charset.forName("US-ASCII").newEncoder().canEncode(ttsMessage)) {
tts.setLanguage(Locale.ENGLISH);
} else {
tts.setLanguage(Locale.CHINESE);
}
tts.speak(ttsMessage, TextToSpeech.QUEUE_FLUSH, null);
Log.d(TAG, "tts speak!!!");
}
Log.d(TAG, "tts initialized!!!");
} else {
tts = null;
}
}
public void onDestroy() {
//Close the Text to Speech Library
if(tts != null) {
tts.stop();
tts.shutdown();
Log.d(TAG, "TTS Destroyed");
}
super.onDestroy();
}
public void onMessageReceived(String from, Bundle data) {
ttsMessage = message;
if (tts == null) {
tts = new TextToSpeech(this, this);
}
}
// [END receive_message]
}