语音合成API阻止主线程
作者:互联网
我正在使用语音合成API来发音不同单词的列表.我的应用程序通过画布说出的单词前后都带有动画效果.我意识到当我执行新的发音时:
var msg = new SpeechSynthesisUtterance(word);
window.speechSynthesis.speak(msg);
口语单词似乎阻塞了主线程,暂时停止了动画.每当我调用window.speechSynthesis.speak();时,都会发生这种情况.
有没有一种方法可以使语音合成在Javascript的单独线程上运行,从而不会干扰我在主线程上的动画?
(我主要是在Chrome中对此进行测试)
解决方法:
我将使用setTimeout伪造一个异步调用:
var msg = new SpeechSynthesisUtterance(word);
setTimeout(function() { window.speechSynthesis.speak(msg); }, 1);
我必须承认我对此不确定.
标签:multithreading,text-to-speech,javascript 来源: https://codeday.me/bug/20191026/1933078.html