2017-08-08 68 views
1

我的情況:「seeked」事件在HTML音頻元素中不起作用嗎?

我有一個音頻元素,並通過websocket連接。當我暫停,播放等時,我房間裏其他人的音頻元素也一樣。

的問題是:

爲了尋求事件,如果有人與尋求酒吧玩,我送幾千的WebSockets的。所以尋求的事件是完美的,除了它和尋求事件一樣。

我的問題很簡單。音頻html元素上的查找事件是否正在工作?

因爲即使在w3cSchool上,該事件似乎也不起作用。 https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_av_event_seeked2

sharedAudio[0].onseeked = function() { 
     session.signal({ 
      type: 'seeking', 
      data: sharedAudio[0].currentTime 
     }, function(error) { 
      if (error) { 
       console.log('Error sending signal:', error.name, error.message); 
      } 
     }); 
    }; 

難道我做錯了什麼?

如果事件無法正常工作,您是否有解決方案來模擬相同的效果? PS:對不起,我的英文不好。

+0

'onseeked'事件在W3學校網站爲我工作。你爲什麼說它不適合你?你正在使用哪種瀏覽器? – MKR

+0

我正在使用Chrome V59。對我來說,當我在搜索欄中移動時,警報框會立即彈出。對於我來說,當我完成像視頻示例一樣的搜索時,會觸發事件'seeked':https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_av_event_seeked_seeking。我誤解了這件事嗎? – Arcades

+0

您可以點擊時間欄以移動到新的位置。一些如何拖放不起作用。那是你想提的嗎? – MKR

回答

0

可以使用下面的腳本來忽略彼此非常接近的seeked位置。

<script> 
var previousseekpos = 0; 
var vid = document.getElementById("myVideo"); 
vid.addEventListener("seeked", function() { 
    var currentSeekPos = this.currentTime; 
    if((currentSeekPos - previousseekpos) > 2.0) 
    { 
     alert("Seek operation completed!"); 
     previousseekpos = currentSeekPos; 
    } 
}); 
</script> 

onseeked事件所行沒有很好地處理拖放在音頻控制滾動條插入位置的下降。

+0

謝謝,但這不是我所需要的。這不是一個解決方案,因爲如果我移動僅1秒,該事件將不會被觸發,並會破壞我的應用程序。 – Arcades

+0

我知道那不是完美的解決方案。這就是爲什麼我添加了關於拖放行爲的註釋。您可以調整時間限制並使用0.5秒等較小的值。另外,你必須考慮採取絕對值,因爲可以將插入符號向左/向右移動。我已經讓你執行了。 – MKR

+0

問題與beginnig相同,值較小。如果有人從1點拖到2點,我的應用程序會發送60/.05 = 120個請求,我不希望這樣。我只是想知道是video.seeked事件是相同的audio.seeked,它似乎不是。 audio.seeked和audio.seeking事件做同樣的事情。 – Arcades