var newUrl = [];
var url = "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=3&text=" + encodeURI(str);
console.log("url:" + url);
newUrl.push(url);
console.log("audioUrl-111:" + JSON.stringify(newUrl));
this.audio.src = "";
this.audio.onloadstart = () =>{
// console.log("tts start:" + url);
console.log("tts start:" + newUrl);
};
this.audio.addEventListener('ended',() =>{
for(let i = 0;i < newUrl.length; i++){
if(newUrl.length === 1){
this.audio.src = newUrl[0];
// console.log("时长:" + this.audio.duration);
// this.audio.src = "";
}else {
this.audio.src = newUrl[i];
}
}
this.audio.src = "";
},false);
this.audio.autoplay = true;
// this.audio.pause();
this.audio.load();
我想请问下我上面这个代码需要怎么修改,才能满足语音的src地址改变,播报完语音后,结束播放呢
注:数据是多条的,不是单条
可能的思路:
- 添加到某个播放列表中,对播放列表进行播放,播放列表播放结束为整个播放结束
- 增加一个判断来判断是否播放到最后(其实你语句中有判断,但判断的处理可能逻辑上有问题,感觉不该是指监听"ended"中处理)