2018-04-03延迟问题

调试过程中发现,录音和伴奏不同步,录音总是会比伴奏慢一些。查看了相关的代码

//点击单句播放音乐
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)//播放伴奏
}

你可能感兴趣的:(2018-04-03延迟问题)