0

我正在使用 Windows Media ActiveX 对象播放视频的媒体播放器,我需要知道视频何时全屏显示。我找不到全屏事件,所以我必须找到解决方法。作为解决方法的一部分,我需要能够获取(最好拦截)使媒体播放器全屏显示的双击事件,但是当播放器开始播放时我无法获取该事件,大概是因为玩家需要它才能知道何时进入全屏。

我已经尝试了许多不同的方法来获得该事件,而它正在播放:

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 对象时获得双击事件有任何想法吗?

4

1 回答 1

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);
    }
);
于 2012-11-26T15:53:16.183 回答