調試過程中發現,錄音和伴奏不同步,錄音總是會比伴奏慢一些。查看了相關的代碼
//點擊單句播放音樂
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)//播放伴奏
}