2015-10-11 41 views
0

當可見性更改爲隱藏時,我可以暫停視頻,並在可見性回到可見狀態時播放視頻。這樣的:可見性回到'可見':只有在沒有暫停之前,視頻纔會自動播放

var userManuallyPause = false; 

    var video = document.getElementById('video'); 
    var documentTitle = document.title; 

    var updateTitleForVideo = function(state){ 
     if (state === '') { 
      document.title = documentTitle; 
      return; 
     }; 

     document.title = documentTitle + ' [' + state + ']'; 
    }; 

    video.onpause = function(){ 
     userManuallyPause = true; 
     updateTitleForVideo('Paused'); 
    }; 

    video.onplay = function(){ 
     updateTitleForVideo(''); 
    }; 

    document.addEventListener('visibilitychange', function(){ 
     var state = document.visibilityState; 

     if (!video.paused) { 
      if (state === 'hidden') { 
       video.pause(); 
       userManuallyPause = false; 
       updateTitleForVideo('Paused'); 
      } 
     } 
     else if (state === 'visible' && !userManuallyPause) { video.play(); } 
    }); 

但如果視頻已經是在暫停之前的知名度去隱藏,我不希望視頻播放的時候我回去可見。

這可能嗎?我不確定。

回答

0

您可以將其存儲在變量中,例如var userManuallyPause = false,如果用戶自己暫停它,則可以將該變量設置爲true。當用戶取消暫停時,您可以將其重新設置爲false。

然後在上面的代碼中,你添加的

if (!userManuallyPause) { ... } 

一張支票,預期它應該運行。

+0

但是如何?如何區分用戶手動暫停和事件生成暫停? – trogne

+0

我猜用戶手動暫停是由暫停按鈕上的onClick事件生成的。在那個事件中,你設置了這個變量。 –

+0

我無法做到。除非我看到一個完整的工作示例,否則我認爲這是不可能的。 – trogne

相關問題