调试过程中发现,录音和伴奏不同步,录音总是会比伴奏慢一些。查看了相关的代码
//点击单句播放音乐
function playone (i,j) {//j=0原唱,j=1伴奏
line=i //line为当前播放句的索引
if(j==0){
if(i!=allline-1){
v.currentTime=transTime(i)
v.play()
v.addEventListener("timeupdate",pause);
}else{
v.currentTime=transTime(i-1)
v.play()
}
}else{
if(i!=allline-1){//最后一句
v1.currentTime=transTime(i)
v1.play()
v1.addEventListener("timeupdate",pause);
}else{
v1.currentTime=transTime(i-1)
v1.play()
}
}
}
写法上应该没什么问题,那应该是播放按钮绑定事件的问题
因为录音部分总是延迟,所以干脆让伴奏晚一些时间执行,经过几次测试,150毫秒的延迟可以让录音和伴奏尽量的同步。
function audioPlay (i) {
var vv = document.getElementById('au'+i)//获取到相对应的audio标签
vv.play()//播放录音
setTimeout(playone,150,i,1)//播放伴奏
}