首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ResponsiveVoice.js -绕过iOS TTS需要直接用户交互

ResponsiveVoice.js -绕过iOS TTS需要直接用户交互
EN

Stack Overflow用户
提问于 2017-01-13 01:18:42
回答 1查看 935关注 0票数 5

在“古怪”一节中的ResponsiveVoice.JS网站中,它指出:

iOS TTS不能在没有直接用户交互的情况下被触发,ResponsiveVoice JS解决了这个问题。

但是,在我的生活中,我无法绕过这个直接的用户交互需求。,你怎么绕过这件事?

下面是我试图在没有用户交互的情况下执行的代码片段,我目前位于<head>元素中:

代码语言:javascript
复制
<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中就不行了。

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 12:50:16

因此,我到处寻找,并隐藏在他们的常见问题,他们有iOS指南。他们并没有完全绕过它,而是在第一次发生之后总是绕开它。

在iOS上,一些事件,如语音合成,需要从用户操作(即单击)中触发。例如,这会导致ResponsiveVoice语音调用无法在页面加载时工作。 对于语音合成,用户触发的动作只需进行一次。第一次之后的进一步直接呼叫将如预期的那样工作。 因此,推荐的最佳做法是在体验中添加一个“开始”按钮,供用户单击,并将其用作对responsiveVoice.speak()的初始化调用。如果需要的话,该调用可以有一个空白作为文本,因此不会对用户产生影响。

您实际上不需要说什么,所以只需单击一个按钮就可以调用responsiveVoice。

代码语言:javascript
复制
<button onclick="responsiveVoice.speak('');">Enable Voice</button>

回答语音常见问题:https://responsivevoice.org/faq/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41625937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档