SpeechSynthesis перестает работать после первого высказывания в FireFox, но работает в Chrome
Проблема очень проста, см. JSfiddle.
SpeechSynthesis прекрасно работает в Chrome, но загадочно останавливается после первого высказывания в FireFox. (У меня работает и в Safari.) Любые идеи приветствуются, так как мне не о чем идти.
Код:
var u = new SpeechSynthesisUtterance();
var synth = window.speechSynthesis;
u.text = "hello";
synth.speak(u);
synth.speak(u);
synth.speak(u);
1 ответ
Решение
На самом деле это известная ошибка в Firefox.
Черновики спецификаций до сих пор не очень ясны в отношении повторного использования высказываний, но вы можете увидеть эту проблему на github w3c, где они согласились с тем, что это должно быть.
В настоящее время одним из обходных путей является создание нового высказывания каждый раз...
var synth = window.speechSynthesis;
synth.speak(new SpeechSynthesisUtterance('hello'));
synth.speak(new SpeechSynthesisUtterance('hello'));
synth.speak(new SpeechSynthesisUtterance('hello'));