HTML语音不适用于Safari mac“TypeError”

时间:2016-11-23 19:51:42

标签: javascript html5 safari text-to-speech

HTML5语音在Mac 10.0.1上的Safari上无效,

我收到了错误,

  

TypeError:对于SpeechSynthesis.speak的参数1('话语')必须是   SpeechSynthesisUtterance的一个实例

适用于Chrome和Firefox,我很确定它曾用于Safari ...

var u = new SpeechSynthesisUtterance();
u.text = "hello world";
u.lang = "en";
window.speechSynthesis.speak(u);

1 个答案:

答案 0 :(得分:2)

好的,终于明白了。

我有一些兼容性代码支持没有html5语音的浏览器,

if (SpeechSynthesisUtterance == undefined) {
    function SpeechSynthesisUtterance(text) {
        this.text = text;
    }
}

这适用于Chrome和Firefox,但在Safari上,似乎在解析脚本时会评估任何脚本中的任何函数,因此即使SpeechSynthesisUtterance已经存在,函数也会被声明。

猜猜我需要以不同的方式做到这一点......