在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>
Run Code Online (Sandbox Code Playgroud)
我想responsiveVoice.speak('Test');在没有直接用户交互的情况下调用iOS中的页面加载.我该怎么做?
这个相同的代码段在桌面上的桌面/ Chrome上的Android/Safari上说得很好,但在iOS中却没有.
我正在制作Nest的Smoke和一氧化碳报警巢保护模拟器.但是当我按下按钮(点击)时,内圈不会像预期的那样变成蓝色.它说话,因为我使用了ResponsiveVoice,但它只是没有点亮!这是我的(未完成的)代码.
<script src="http://code.responsivevoice.org/responsivevoice.js"></script>
<script>
function delay(millis) {
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
}
function press() {
document.getElementById("unit").src = "assets/img/blue.jpg";
delay(500);
responsiveVoice.speak("Ready. In the Living Room. Press to test.");
delay(500);
document.getElementById("unit").src = "assets/img/idle.jpg";
}
</script>
Run Code Online (Sandbox Code Playgroud) 这样可以正常工作,它会在点击时说出文本区域,但是如何更改它onload呢?
<script src="http://responsivevoice.org/responsivevoice/responsivevoice.js"></script>
<script src="http://code.jquery.com/jquery-git2.js"></script>
<textarea id="text" cols="45" rows="3"> HHHH</textarea>
<select id="voiceselection"></select>
<input onclick="responsiveVoice.speak($('#text').val(),$('#voiceselection').val());" type="button" value="Play" />
<br>
<button id="isPlaying">Playing:</button>
<p id="r">?</p>
Run Code Online (Sandbox Code Playgroud)
文本区域现在只说四个字母.
我想这是关键部分,但不能适合任何正确的执行:
responsiveVoice.speak($('#text').val(),$('US English Female').val());
Run Code Online (Sandbox Code Playgroud)
我试过了:
var voicelist = responsiveVoice.getVoices();
var vselect = $("#voiceselection");
$.each(voicelist, function() {
vselect.append($("<option />").val(this.name).text(this.name));
});
// Yours
$('#isPlaying').on('click', function() {
$('#r').text(window.speechSynthesis.speaking)
})
$(document).ready(function() { //short code: $(function() { ... });
responsiveVoice.speak($('#text').val(), $('US English Female').val());
});Run Code Online (Sandbox Code Playgroud)
<script src="http://responsivevoice.org/responsivevoice/responsivevoice.js"></script>
<script src="http://code.jquery.com/jquery-git2.js"></script>
<textarea id="text" cols="45" rows="3">It reads this</textarea>
<select id="voiceselection"></select>
<script>
</script>
<input onclick="responsiveVoice.speak($('#text').val(),$('US …Run Code Online (Sandbox Code Playgroud)