我目前正在speak.js鬼混:http://www.syntensity.com/static/espeak.htmlSpeak.js - 只执行一个命令
显然,脚本只允许一个说话要执行的命令,如果我这样做:
speak("1");
speak("2");
...只读出“2”。
有没有人知道如何解决这样的问题?
如果你想折腾:http://jsfiddle.net/timkl/YgWdh/
我目前正在speak.js鬼混:http://www.syntensity.com/static/espeak.htmlSpeak.js - 只执行一个命令
显然,脚本只允许一个说话要执行的命令,如果我这样做:
speak("1");
speak("2");
...只读出“2”。
有没有人知道如何解决这样的问题?
如果你想折腾:http://jsfiddle.net/timkl/YgWdh/
发生了什么事情是两个正在执行,但第一个被第二个踩到了。看看你的小提琴的这个版本:http://jsfiddle.net/YgWdh/4/。
它使用setTimeout
来确保第二行在执行前等待一会儿。但是我没有看到任何API文档,所以我不知道如何让第二个电话等待足够长的时间才能完成第一个。
我认为你必须做这样的事情speak("1 2")
我还没有与该库的任何经验,但你可能想在讲话之后延迟一段时间,因为如果你让它在讲话之后说出另一个命令,它就会覆盖第一个讲话。
http://stackoverflow.com/questions/8194089/speak-js-only-one-command-is-executed/8194167#8194167 –
也许你可以调查meSpeak.js(http://www.masswerk.at/mespeak/),它基于speak.js,并添加对回调的支持。 我并不参与该项目,但我正在调查回调有助于解决的问题。
顺便说一句,你可以从C编译成Javascript,我从来不知道。很高兴知道。 – dnuttle