在“古怪”一节中的ResponsiveVoice.JS网站中,它指出:
iOS TTS不能在没有直接用户交互的情况下被触发,ResponsiveVoice JS解决了这个问题。
但是,在我的生活中,我无法绕过这个直接的用户交互需求。,你怎么绕过这件事?
下面是我试图在没有用户交互的情况下执行的代码片段,我目前位于<head>元素中:
<script src="http://code.responsivevoice.org/responsivevoice.js"></script>
<script type="text/javascript">
function speak_static_data(){
responsiveVoice.speak('Test');
}
setTimeout(function(){ speak_static_data(); }, 3000);
</script>我想在没有直接用户交互的情况下,在iOS中调用页面加载上的iOS。我该怎么做?
同样的代码片段在Android/Safari上、桌面上/Chrome上讲得很好,但在iOS中就不行了。
发布于 2017-03-07 12:50:16
因此,我到处寻找,并隐藏在他们的常见问题,他们有iOS指南。他们并没有完全绕过它,而是在第一次发生之后总是绕开它。
在iOS上,一些事件,如语音合成,需要从用户操作(即单击)中触发。例如,这会导致ResponsiveVoice语音调用无法在页面加载时工作。 对于语音合成,用户触发的动作只需进行一次。第一次之后的进一步直接呼叫将如预期的那样工作。 因此,推荐的最佳做法是在体验中添加一个“开始”按钮,供用户单击,并将其用作对responsiveVoice.speak()的初始化调用。如果需要的话,该调用可以有一个空白作为文本,因此不会对用户产生影响。
您实际上不需要说什么,所以只需单击一个按钮就可以调用responsiveVoice。
<button onclick="responsiveVoice.speak('');">Enable Voice</button>回答语音常见问题:https://responsivevoice.org/faq/
https://stackoverflow.com/questions/41625937
复制相似问题