SpeechSynthesisUtterance 在移动浏览器中不起作用
SpeechSynthesisUtterance not working in mobile broswer
我在我的移动网站上使用 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);
}
但是当我使用 "click" 事件时,它起作用了:
$("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);
});
请帮忙。谢谢。
我曾多次提到(例如 this)speak
仅在从用户交互调用时才有效,例如单击。据我所见,iOS 上的 Safari 似乎就是这种情况,这似乎就是您在问题中所描述的。
我实际上还没有找到任何类型的文档来证实这种行为,如果有人能提供任何参考,我将不胜感激。
我在我的移动网站上使用 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);
}
但是当我使用 "click" 事件时,它起作用了:
$("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);
});
请帮忙。谢谢。
我曾多次提到(例如 this)speak
仅在从用户交互调用时才有效,例如单击。据我所见,iOS 上的 Safari 似乎就是这种情况,这似乎就是您在问题中所描述的。
我实际上还没有找到任何类型的文档来证实这种行为,如果有人能提供任何参考,我将不胜感激。