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'));

Другие вопросы по тегам