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); 
    } 
);