我想在Chrome中使用window.SpeechSynthesis的cancel方法来切断话语并开始一个新的话(这样您就不必听到仍在排队的所有话语了)
var test = new SpeechSynthesisUtterance("Test");
window.speechSynthesis.speak(test);
window.speechSynthesis.cancel();
var test2 = new SpeechSynthesisUtterance("Test2");
window.speechSynthesis.speak(test2);
Run Code Online (Sandbox Code Playgroud)
预期:以var test开始语音,但由于cancel()立即取消语音。然后使用var test2重新开始语音,这应该可以正常工作。
当然,那没有发生。但是什么都没发生。:D似乎在cancel()之后调用了say()却什么也不做。
API说明如下:
此方法从队列中删除所有语音。如果说出话语,则说话立即停止。此方法不会更改全局SpeechSynthesis实例的暂停状态。
谢谢答案:)