1. 程式人生 > 其它 >多個videod視訊同步播放

多個videod視訊同步播放

兩個video標籤 <video  :src="vodelurl1.url"  controls  style="width: 100%; height: 230px;object-fit: cover;"  id="videoid1"  ></video>

 <video  :src="vodelurl2.url"   controls   style="width: 100%; height: 230px;object-fit: cover;"   id="videoid2"  ></video>

js方法

//---video視訊同步播放----- const interval = ref()//定時器 const video1 = ref() //視訊1 const video2 = ref() //視訊2 const state1 = ref(0) //視訊1的readyState狀態值 const state2 = ref(0) //視訊2的readyState狀態值 //獲取vidoe標籤屬性方法 const videoTogetherPlay=()=>{     video1.value = document.getElementById("videoid1")     video2.value = document.getElementById("videoid2")
    state1.value = video1.value.readyState //0 = 沒有關於音訊/視訊是否就緒的資訊,1 = 關於音訊/視訊就緒的元資料     state2.value = video2.value.readyState //2 = 關於當前播放位置的資料是可用的,但沒有足夠的資料來播放下一幀/毫秒,                                      //3 = 當前及至少下一幀的資料是可用的,4 = 可用資料足以開始播放         //播放     video1.value.addEventListener("play",function(e){         // video2.value.play()         endPausePlay()     })     video2.value.addEventListener("play",function(e){         // video1.value.play()         endPausePlay()     })
    //暫停     video1.value.addEventListener("pause",function(e){         video2.value.pause()     })     video2.value.addEventListener("pause",function(e){         video1.value.pause()     })
    //結束     video1.value.addEventListener("ended", function () {         endPausePlay()     });     video2.value.addEventListener("ended", function () {         endPausePlay()     });
    interval.value = setInterval(cogradientPlay, "1000", "1"); } //同步播放視訊方法 const cogradientPlay=()=>{     if (state1.value == 4 && state2.value == 4) {         video1.value.play()         video2.value.play()         if ( interval.value != "") {             clearInterval( interval.value);         }     } } //播放完一個視訊,其它視訊每播放完繼續播放 const endPausePlay=()=>{      //判斷播放是否結束     if (!video1.value.ended) {         //視訊沒播放完繼續播放         video1.value.play()     }else{         //視訊播放完成暫停播放         video1.value.pause()     }
    if (!video2.value.ended) {         //視訊沒播放完繼續播放         video2.value.play()     }else{         //視訊播放完成暫停播放         video2.value.pause()     } }