2013-07-02 2 views
0

제목이 거의 다 나와 있습니다. 컨트롤이 해제 된 Video.js 인스턴스 (마크 업에서는 일명 "컨트롤"이 없음)가 있습니다. 그것은 훌륭하게 작동하지만 비디오를 일시 중지하면 비디오의 컨트롤이 다시 페이드 인하면서 다시 페이드 아웃됩니다.Video.js 컨트롤이 비활성화 되어도 일시 중지됩니다.

이것은 분명히 (내 외부 사용자 정의 버튼과 myPlayer.pause 그것이 작동해야하는 것처럼 보입니다. 누구도 버그인지, 아니면 방금 누락 된 것이 있습니까?

답변

1

비 압축 (dev) 버전의 videojs를 사용하는 경우 ctangney의 대답은 압축 된 후에 lockShowing 메서드의 이름이 바뀌었기 때문에 (즉, 해당 문제에 대해서는 player()이기 때문에 작동합니다. 잘하면 issue 556에 대한 그의 병합 요청이 곧 승인 될 것입니다.

pause()에서 lockShowing을 호출하면 vjs-lock-showing 클래스가 css : display: block !important 인 controls 요소에 추가됩니다. 이로 인해 disable() 메소드에 의해 추가 된 display:none의 인라인 스타일이 트럼프되었습니다. 여기에 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 방법을 덮어 써서이 문제를 해결할 수 있습니다.

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

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

을 ... 이후 (현재) 컨트롤 막대는 리스너를 이벤트를 일시 중지하고 lockShowing()을 호출합니다.

관련 문제