我目前正在使用speak.js:http://www.syntensity.com/static/espeak.html
显然,如果我这样做,脚本只允许执行一个发言命令:
speak("1");
speak("2");
...只读出“2”。
有人知道如何解决这样的问题吗?
答案 0 :(得分:2)
正在发生的事情是两者都被执行但第一个被第二个踩踏。看看你的小提琴的这个版本:http://jsfiddle.net/YgWdh/4/。
它使用setTimeout
来确保第二行在执行之前等待一点。但我没有看到任何API文档,因此我不知道如何使第二次调用只等待第一次完成。
答案 1 :(得分:1)
我认为你必须做speak("1 2")
答案 2 :(得分:1)
我对这个图书馆没有任何经验,但你可能想在讲话后延迟一段时间,因为如果你让它在它之后立即说出另一个命令,它就会覆盖第一个说话。
答案 3 :(得分:1)
也许您可以调查meSpeak.js(http://www.masswerk.at/mespeak/),它基于speak.js,并添加对回调的支持。 我与该项目无关,但我正在研究回调有助于解决的问题。