2013-07-02 1 views
0

Тема в значительной степени говорит обо всем. У меня есть экземпляр Video.js с выключенными элементами управления (также нет «элементов управления» в разметке). Он работает блестяще, но когда я приостанавливаю видео (используя мою внешнюю настраиваемую кнопку и myPlayer.pause(), элементы управления на видео исчезают. Когда я нажимаю кнопку воспроизведения, они снова исчезают.Элементы управления Video.js возвращаются на паузу, хотя отключены

Это определенно не похоже на то, как он должен работать. Кто-нибудь знает, если это ошибка, или я просто что-то упустил?

ответ

1

Ответ ctangney работает только при использовании несжатой (dev) версии видеоjs, так как после сжатия метод lockShowing переименовывается (например, это игрок()). Надеемся, что его запрос о слиянии для issue 556 будет принят в ближайшее время.

Когда lockShowing вызывается на pause(), он добавляет класс элемента управления vjs-lock-showing к элементу управления, который имеет значение css: display: block !important. Это вызывает встроенный стиль display:none, добавленный методом disable(), который будет превзойден. Вот работа, вокруг которой обращается к проблеме CSS специфичностью, и работает со сжатыми и несжатых videojs:

var v = videojs("video", {}); 
if(!v.controls()) { 
    v.controlBar.el().className = v.controlBar.el().className + ' vjs-controls-disabled'; 
} 

Затем добавить в конец файла CSS (ы):

.vjs-controls-disabled {display: none !important;} 

(Или вы мог бы просто удалить !important от .vjs-lock-showing)

+0

Это работало как шарм, спасибо! Как вы сказали, мы надеемся, что исправление будет объединено в ближайшем будущем. – Phil

0

Это confirmed bug. Я вижу предлагаемое исправление, но это все еще запрос на открытый вызов на момент. В то же время вы можете исправить это просто переписав метод lockShowing в ControlBar в.

var vid = videojs("video", {}); 

if (!vid.player().controls()) { 
    vid.controlBar.lockShowing = function(){}; 
} 

... так как (в настоящее время) панель управления прикрепляет слушателя к событиям «пауза» и вызывает lockShowing().

Смежные вопросы