0

我正在使用Windows Media ActiveX對象播放視頻的媒體播放器,並且我需要知道視頻何時全屏顯示。我無法找到全屏幕事件,所以我不得不尋找解決方法。作爲解決方案的一部分,我需要能夠獲得(並且最好攔截)使媒體播放器全屏顯示的雙擊事件,但是當播放器開始播放時我無法獲得該事件,可能是因爲玩家可以通過它來了解何時全屏顯示。雙擊在IE中播放Windows媒體對象時未觸發的事件

我已經嘗試了很多不同的東西來獲取事件,而它玩:

activeXElement.attachEvent('ondblclick',function(){alert('Double Click')}); 
activeXElement.attachEvent('dblclick',function(){alert('Double Click')}); 
activeXElement.attachEvent('ondoubleclick',function(){alert('Double Click')}); 
activeXElement.attachEvent('doubleclick',function(){alert('Double Click')}); 
activeXElement.attachEvent('DoubleClick',function(){alert('Double Click')}); 
activeXElement.attachEvent('onDoubleClick',function(){alert('Double Click')}); 
activeXElement.attachEvent('OnDoubleClick',function(){alert('Double Click')}); 
activeXElement.ondblclick=function(){alert('Double Click')}; 
activeXElement.dblclick=function(){alert('Double Click')}; 
activeXElement.ondoubleclick=function(){alert('Double Click')}; 
activeXElement.doubleclick=function(){alert('Double Click')}; 
activeXElement.DoubleClick=function(){alert('Double Click')}; 
activeXElement.onDoubleClick=function(){alert('Double Click')}; 
activeXElement.OnDoubleClick=function(){alert('Double Click')}; 

當它尚未開始播放,以下兩項工作:

activeXElement.attachEvent('doubleclick',function(){alert('Double Click')}); 
activeXElement.attachEvent('DoubleClick',function(){alert('Double Click')}); 

他們都不是在播放時工作。有人在播放ActiveX對象時如何獲得雙擊事件有任何想法嗎?

回答

0

我最終爲此問題創建瞭解決方法。我在此發佈可能會遇到此問題的其他人。

我監聽點擊事件,當單擊元素時,隱藏控件,就像我想在屏幕全屏時一樣。然後,稍後(給雙擊的時間),檢查它是否全屏,並且,如果它沒有再次隱藏控件。我必須暫時顯示控件,因爲一旦全屏顯示,我無法隱藏或顯示控件。

這裏是我使用的代碼:

activeXElement.attachEvent('click', 
    function(nButton){ 
     if(nButton!=1)return;// Not left click 

     // I can't set uiMode when full screen. 
     // Set it now and set it back later if needed. 
     activeXElement.uiMode='full'; 
     setTimeout(
      function(){ 
       if(activeXElement.fullScreen){ 
        // It went full screen. 
        // Do some stuff... 
       } 
       else activeXElement.uiMode='none'; 
      } 
     ,750); 
    } 
);