Событие двойного щелчка не запускается при воспроизведении объекта Windows Media в IE

Я работаю над медиаплеером, в котором я использую объект 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 во время его воспроизведения?


person Joshua Dwire    schedule 15.11.2012    source источник


Ответы (1)


Я закончил тем, что создал обходной путь для этой проблемы. Я размещаю его здесь для других, которые могут столкнуться с этой проблемой.

Я прослушиваю событие щелчка, и когда элемент нажат, скрываю элементы управления, как я хотел, когда он перешел в полноэкранный режим. Затем, позже (дайте время для двойного щелчка), проверьте, является ли он полноэкранным, и, если он не скрывает элементы управления, снова. Мне пришлось временно показать элементы управления, потому что я не могу скрыть или показать элементы управления, когда они развернуты в полноэкранном режиме.

Вот код, который я использовал:

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);
    }
);
person Joshua Dwire    schedule 26.11.2012