1

我目前正在玩弄 speak.js:http ://www.syntensity.com/static/espeak.html

显然,如果我这样做,脚本只允许执行一个说话命令:

speak("1");
speak("2");

... 只读出“2”。

有谁知道如何解决这样的问题?

如果你想摆弄:http: //jsfiddle.net/timkl/YgWdh/

4

4 回答 4

2

发生的事情是两者都被执行,但第一个被第二个践踏。看看你的小提琴的这个版本:http: //jsfiddle.net/YgWdh/4/

它使用 asetTimeout来确保第二行在执行之前稍等片刻。但是我没有看到任何 API 文档,所以我不知道如何让第二个调用等待足够长的时间让第一个调用完成。

于 2011-11-19T12:52:25.873 回答
1

我认为你必须做类似的事情speak("1 2")

http://jsfiddle.net/K6GtQ/

于 2011-11-19T12:39:22.790 回答
1

我对这个库没有任何经验,但你可能想在说话后延迟一段时间,因为如果你让它在它之后说出另一个命令,它只会覆盖第一个说话。

于 2011-11-19T12:41:40.940 回答
1

也许您可以研究基于 speak.js 的 meSpeak.js ( http://www.masswerk.at/mespeak/ ),并添加对回调的支持。我绝不隶属于该项目,但我正在调查回调有助于解决的问题。

于 2016-03-18T15:05:33.077 回答