【问题标题】:SpeechSynthesisUtterance not working in mobile broswerSpeechSynthesisUtterance 在移动浏览器中不起作用
【发布时间】:2015-05-02 14:30:43
【问题描述】:

我在我的移动网站中使用 SpeechSynthesisUtterance。当我在桌面版网站中使用此代码时,它是可以的。但我发现该功能在 document.ready 中的移动浏览器中不起作用,如下所示:

 $(document).ready(function(){
 var text_tts="say something";
 speakText(text_tts);
    });
function speakText(text_tts){
var u = new SpeechSynthesisUtterance();
u.text = text_tts;
u.lang = 'en-US';
u.rate = 1;
u.onend = function(event) { console.log('Finished in ' + event.elapsedTime + ' seconds.'); }
speechSynthesis.speak(u);

}

但是当我使用“点击”事件时,它会起作用:

$("body").on("click",".button",function(){
         var tmp_body_text="say something";
                   var u = new SpeechSynthesisUtterance();
                   u.text = tmp_body_text;
                   u.lang = 'en-US';
                   u.rate = 1;
                   //u.onend = function(event) { console.log('Finished in ' + event.elapsedTime + ' seconds.'); }
                   speechSynthesis.speak(u);
                   });

请帮忙。谢谢。

【问题讨论】:

    标签: mobile browser text-to-speech speech-synthesis webspeech-api


    【解决方案1】:

    我已经看到几个提到(例如this)speak 仅在从用户交互(例如单击)中调用时才有效。据我所见,iOS 上的 Safari 似乎就是这种情况,这似乎就是您在问题中所描述的。

    我实际上还没有找到任何类型的文档来证实这种行为,并且希望任何人都可以提供任何参考。

    【讨论】:

    • 我遇到了同样的情况,在 iOS 用户必须启动它......不知道背后的想法是什么或如何解决它。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 2020-09-01
    • 2015-05-20
    • 2019-08-07
    相关资源
    最近更新 更多