2014-04-06 74 views
0

我在Android Web視圖上使用標記。這是代碼:當沒有互聯網連接時Html5視頻觸發「結束」事件

<div class="video-wrapper"> 
    <video id="video" class="video-full-screen" preload="none" webkit-playsinline poster={poster url here}> 
     <source id="mp4" src="{Video Source here}" type="video/mp4"> 
     <p>Your user agent does not support the HTML5 Video element.</p> 
    </video> 
</div> 

我註冊了以下視頻事件:

var video = $('video'); 

video.bind("canplay", function(){ 
    console.log("canplay"); 
}); 

video.bind("playing", function(){ 
    console.log("playing"); 
}); 

video.bind("waiting", function(){ 
    console.log("waiting"); 
}); 

video.bind("ended", function(){ 
    console.log("ended"); 
}); 

video.bind("canplay", function(){ 
    console.log("canplay"); 
}); 

當我拔下壓制視頻的海報前的互聯網,我收到下面的事件(點擊海報後):

「等待」

「canplay」

「玩」

「結束」

所有這些事件都在幾秒鐘內發生的事情(視頻是不是在玩)。測試三星Galaxy S4 4.2.2。

這明顯是什麼樣的包? (不在iOS/Nexus 4,Android 4.4上發生)

回答

0

這似乎是一個令人費解的事件鏈。在你的情況下,我認爲重要的一步是嘗試抓取「斷開事件」作爲錯誤。事實上,結束的事件確實會觸發,但它應該與警告/錯誤事件相結合。 您可以嘗試綁定錯誤事件,然後在發生錯誤事件時採取適當的措施,如顯示錯誤圖像或嘗試重新加載視頻。

video.bind('error', function() { 
console.log('error'); 
}); 

如果沒有足夠的嘗試中止或受阻事件:

video.bind('abort', function() { 
console.log('abort'); 
}); 
video.bind('stalled', function() { 
console.log('stalled'); 
}); 

您可以對事件的描述,讀here。停滯事件也被描述爲here

請記住,HTML5視頻實現仍然依賴於瀏覽器/ webview製造商,並且某些設備不會按預期做出反應。

相關問題