Javascript 文本到语音音频在浏览器中不同步工作
我使用的是队列管理系统。我的问题是音频重叠。如何解决这个问题Javascript 文本到语音音频在浏览器中不同步工作,javascript,jquery,ajax,html5-audio,Javascript,Jquery,Ajax,Html5 Audio,我使用的是队列管理系统。我的问题是音频重叠。如何解决这个问题 $.ajax({ url: 'DisplayDataRead', type: 'post', dataType: 'json', headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, async: false, data: { counter: user
$.ajax({
url: 'DisplayDataRead',
type: 'post',
dataType: 'json',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
async: false,
data: {
counter: userCounter,
command: 'tokensCxr'
},
success: function(data) {
$(data.result).each(function(key, val) {
var tokenUpdate = $this.next().text();
if (tokenUpdate != val.temp_token_no) {
var audio = new Audio(path);
audio.play();
audio.onended = function() {
responsiveVoice.speak("Token Number " + val.temp_token_no + " - Please Proceed to Counter " + userCounter + "", "US English Female");
};
}
$this.next().html('');
$this.next().html('<h2 style=" font-size: 1.2em; font-weight: bold; ">' + val.temp_token_no + '</h2>');
});
}
});
$.ajax({
url:“DisplayDataRead”,
键入:“post”,
数据类型:“json”,
标题:{
'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]).attr('content'))
},
async:false,
数据:{
计数器:userCounter,
命令:“tokensCxr”
},
成功:功能(数据){
$(data.result)。每个(函数(键,值){
var tokenUpdate=$this.next().text();
如果(令牌更新!=val.temp_令牌编号){
var audio=新音频(路径);
音频播放();
audio.onended=函数(){
回答语音。说(“令牌号”+val.temp\u令牌号+”-请转到计数器“+userCounter+”,“美英女性”);
};
}
$this.next().html(“”);
$this.next().html(“”+val.temp_-token_-no+“”);
});
}
});
在结束语音之前加载每个函数。JavaScript不是一种同步编程语言,因此您可以使用回调方法来实现这一点,例如,当某些内容完成时,您必须运行一些东西 使用谷歌官方的文本到语音API
const ut = new SpeechSynthesisUtterance('Hello');
speechSynthesis.speak(ut);
请记住,如果没有用户交互(如用户单击按钮或用户启动的某些函数触发),脚本无法自动调用语音API
示例:
函数callAjax(){
$.ajax({
url:“https://reqres.in/api/users",
键入:“获取”,
成功:功能(响应){
$.each(response.data、函数(索引、元素){
const ut=新的语音合成(元素名);
ut.onend=函数(){
警报(元素名称);
console.log(元素名);
};
演讲综合(ut);
});
}
});
}
调用Ajax <代码>尝试谷歌API,让我知道是否有任何问题:请参阅EddiDeF此工作,考虑接受答案。