setOnUtteranceProgressListener()并不总是有效

时间:2018-02-17 06:36:33

标签: android

在处理TextToSpeech项目时,我遇到了以下情况:

1)如果我使用speak(CharSequence text, int queueMode, Bundle params, String utteranceId)说出文字,话语听众会按预期工作。

2)如果我使用addSpeech(String text, String packagename, int resourceId)添加了映射然后使用speak(CharSequence text, int queueMode, Bundle params, String utteranceId),则映射有效(声音播放),但是没有调用话语侦听器方法。

3)如果我使用addEarcon(String earcon, String packagename, int resourceId)然后使用playEarcon(String earcon, int queueMode, Bundle params, String utteranceId),则映射有效(播放声音),但是没有调用话语侦听器方法。

4)如果我使用playSilentUtterance(long durationInMs, int queueMode, String utteranceId),话语监听器按预期工作。

5)使用API​​级别21中弃用的方法解决了2和3中的问题,例如使用:

HashMap<String, String> params = new HashMap<String, String>();
    params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, String key);  (deprecated)

如果是2号:

addSpeech(String text, String packagename, int resourceId);

然后

speak(String text, int queueMode, HashMap<String, String> params);  (deprecated method)

如果是3号:

addEarcon(String earcon, String packagename, int resourceId) 

然后

playEarcon(String earcon, int queueMode, HashMap<String, String> params);  (deprecated method)

之前有没有人经历过这个?

1 个答案:

答案 0 :(得分:0)

是的,这是不同说话情况的条件,这可能会使建议调整初始化顺序的其他用户感到困惑。

用户必须为UtteranceProgressListener创建参数以进行跟踪。