/**
* @file big-play-button.js
*/
'./button.js'에서 버튼 가져오기;
'./component.js'에서 컴포넌트 가져오기;
import {isPromise, silencePromise} from './utils/promise';
* './utils/browser.js'에서 브라우저로 가져오기;
/**
* 동영상이 재생되기 전에 표시되는 초기 재생 버튼입니다. 의 은폐
* `BigPlayButton`은 CSS 및 `Player` 상태를 통해 완료됩니다.
*
* @extends 버튼
*/
클래스 BigPlayButton 확장 버튼 {
생성자(플레이어, 옵션) {
super(플레이어, 옵션);
this.mouseused_ = 거짓;
this.on('마우스다운', (e) => this.handleMouseDown(e));
}
/**
* 기본 DOM `className`을 빌드합니다.
*
* @return {문자열}
* 이 개체의 DOM `className`입니다. 항상 'vjs-big-play-button'을 반환합니다.
*/
buildCSSClass() {
'vjs-big-play-button' 반환;
}
/**
* 이것은 `BigPlayButton`이 "클릭"될 때 호출됩니다. {@link ClickableComponent} 참조
* 클릭이 무엇인지에 대한 자세한 정보를 보려면.
*
* @param {EventTarget~Event} 이벤트
* 이 함수를 실행하게 만든 `keydown`, `tap` 또는 `click` 이벤트
* 라고 불리는.
*
* @listens 탭
* @듣기 클릭
*/
handleClick(이벤트) {
const playPromise = this.player_.play();
// 마우스로 클릭하면 일찍 종료
if (this.mouseused_ && 이벤트.클라이언트X && 이벤트.클라이언트Y) {
const sourceIsEncrypted = this.player_.usingPlugin('eme') &&
this.player_.eme.sessions &&
this.player_.eme.sessions.length > 0;
침묵 약속(playPromise);
if (this.player_.tech(참) &&
// DRM 콘텐츠를 재생할 때 IE 및 Edge에서 버그를 관찰했습니다.
// 비디오 요소에서 .focus()를 호출하면 비디오가 검게 변합니다.
// 특정 경우에는 피합니다.
!((브라우저.IE_VERSION || 브라우저.IS_EDGE) && sourceIsEncrypted)) {
this.player_.tech(true).focus();
}
반품;
}
const cb = this.player_.getChild('controlBar');
const playToggle = cb && cb.getChild('playToggle');
if (!playToggle) {
this.player_.tech(true).focus();
반품;
}
const playFocus = () => playToggle.focus();
if (isPromise(playPromise)) {
playPromise.then(playFocus, () => {});
} else {
this.setTimeout(playFocus, 1);
}
}
handleKeyDown(이벤트) {
this.mouseused_ = 거짓;
super.handleKeyDown(이벤트);
}
handleMouseDown(이벤트) {
this.mouseused_ = 참;
}
}
/**
* `BigPlayButton` 컨트롤 위에 표시되어야 하는 텍스트입니다. 현지화를 위해 추가되었습니다.
*
* @유형 {문자열}
* @사적인
*/
BigPlayButton.prototype.controlText_ = '동영상 재생';
Component.registerComponent('BigPlayButton', BigPlayButton);
기본 BigPlayButton 내보내기;