【发布时间】:2013-12-16 07:14:07
【问题描述】:
我不想把我所有的代码都放在这里,所以我只放相关的部分。如果您需要更多,请随时询问。
我正在使用文本转语音 (TTS),它在询问问题后会导致语音听众...我通过日志输出发现 TTS 的 onInit 正在被调用,但 UtteranceProgressListener 不是,我想不出出为什么。任何帮助表示赞赏。
// ---Initialize TTS variables---
// Implement Text to speech feature
tts = new TextToSpeech(this, new ttsInitListener());
// set listener to the TTS engine
tts.setOnUtteranceProgressListener(new ttsUtteranceListener());
if (!tts.isSpeaking()) {
tts.speak("Speak to me", TextToSpeech.QUEUE_FLUSH, null);
}
// --- TEXT TO SPEECH && SPEECH TO TEXT METHODS ---
class ttsInitListener implements OnInitListener {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
tts.setLanguage(Locale.getDefault());
} else {
tts = null;
Toast.makeText(mContext, "Failed to initialize TTS engine.",
Toast.LENGTH_SHORT).show();
}
}
}
class ttsUtteranceListener extends UtteranceProgressListener {
@Override
public void onDone(String utteranceId) {
if (processStart) {
speech.startListening(intent);
} else {
...
}
}
@Override
public void onError(String utteranceId) {
}
@Override
public void onStart(String utteranceId) {
}
}
我为我的所有 TTS 和 Speech 方法添加了日志输出。 UtteranceProgressListener 的 onStart 甚至没有被调用:
11-30 00:38:37.299: D/OpenGLRenderer(15842): Enabling debug mode 0
11-30 00:38:39.782: I/TextToSpeech(15842): Connected to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
11-30 00:38:39.782: I/TextToSpeech(15842): Set up connection to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
11-30 00:38:39.782: D/LOOK AT ME!!!(15842): ttsInitListener - onInit
【问题讨论】:
-
必须在 onstart 中的话语进度监听器上进行 logcat 打印输出
-
我刚停下来。大约 20 分钟后会回来,然后我会添加并粘贴日志
-
@AndroidVenkatesh 我将输出添加到 OP