其他分享
首页 > 其他分享> > 语音合成API阻止主线程

语音合成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