2010-06-22 78 views
23

我有一個使用HTML5視頻標籤的iPhone的網頁。在iPhone上,這些嵌入式視頻在本地播放器中播放。我想檢查視頻何時結束,當用戶通過「完成」按鈕解除視頻時。最初,我試過這個:在iPhone上使用html5視頻事件時,如何從簡單的暫停中點擊「完成」按鈕點擊?

var video = $("#someVideo").get(0);   
video.addEventListener('ended', myFunction); 

但是,只有當視頻被允許完成時纔會觸發。一些玩過其他事件(暫停,停頓,等待)後,我發現「完成」按鈕會觸發「暫停」事件。然而,當我補充一點:

video.addEventListener('pause', myFunction); 

我的代碼被稱爲無論是從「完成」按鈕當用戶點擊的播放控件暫停按鈕。第二種情況是不可取的;我只想要第一個案子,但事件似乎沒有給我足夠的信息。

有誰知道一種方式來告訴用戶何時擊中iPhone播放器中的「完成」按鈕(而不是簡單地暫停)?

回答

20

只需在您的暫停功能中檢查webkitDisplayingFullscreen布爾值。按「完成」或「暫停」會觸發暫停事件,但「完成」的操作稍微像是從全屏模式退出一樣。做這個檢查將幫助你區分2個按鈕。 下面的一些示例代碼。

<script> 
var html5Video = function() { 
    return { 
     init: function() { 
      var video = document.getElementsByTagName('video')[0]; 
      video.addEventListener('ended', endVideo, false); 
      video.addEventListener('pause', pauseVideo, false); 
     } 
    }; 
}(); 

function endVideo() { 
    alert("video ended"); 
} 

function pauseVideo() { 
    var video = document.getElementsByTagName('video')[0]; 
    if (!video.webkitDisplayingFullscreen) 
     endVideo(); 
} 

html5Video.init(); 

</script> 
+0

只是注意到這個屬性僅在最近的iOS版本中可用。 – 2011-05-06 19:51:39

+0

這適用於播放視頻,然後在播放視頻時按'完成' - 但如果您暫停視頻,然後按'完成'它不會觸發...編輯:看到有一個後續問題: http://stackoverflow.com/questions/11112150/with-an-html5-video-element-on-the-iphone-how-can-i-detect-the-difference-betwe?lq=1 – 2012-08-20 13:26:33

相關問題