我试图让响应性语音读出每个句子,每个读数之间必须有1分钟的差距。
function read(){
responsiveVoice.speak('قلم','Arabic Female');
}
var a = [1,2,3];
$(a).each( function(){
setTimeout(function(){ read(); }, 1000);
});
目前它只播放一次而在另外两个循环中出现错误
未捕获(在promise中)DOMException:play()请求被pause()调用中断。
我也无法让它读取任何动态传递给它的东西
答案 0 :(得分:0)
也许问题是您使用.each()
方法不正确,因为$(a)
尝试定位选择器而不是数组。
jQuery.each(array,callback) where
array :Type:Array - 要迭代的数组。
回调:类型:Function(Integer indexInArray,Object value) - 将在每个对象上执行的函数。
所以,试试这个:
$.each( a, function(){
setTimeout(function(){
read();
}, 1000);
});
希望这对你有所帮助。
答案 1 :(得分:0)
好的,谷歌搜索后我找到了这个答案
基本上,您需要增加计时器。
$.each( a, function(i){
setTimeout(function(){
read();
}, i*1000);
});
所以第一个循环是1秒。循环2将是2秒。
以下是我的示例代码:
setTimeout(function(){
console.log(text)
responsiveVoice.speak(text, 'Swedish Female', {rate: 0.7}, {pitch: 2});
}, i*6000);
每次讲话大约需要5秒钟。我使用6秒,因为我想在每一行添加一些暂停。