/**
* @file duration-display.js
*/
'./time-display'에서 TimeDisplay 가져오기;
'../../component.js'에서 컴포넌트 가져오기;
/**
* 기간을 표시합니다
*
* @extends 컴포넌트
*/
클래스 DurationDisplay는 TimeDisplay {를 확장합니다.
/**
* 이 클래스의 인스턴스를 만듭니다.
*
* @param {플레이어} 플레이어
* 이 클래스가 연결되어야 하는 `Player`.
*
* @param {객체} [옵션]
* 플레이어 옵션의 키/값 저장소.
*/
생성자(플레이어, 옵션) {
super(플레이어, 옵션);
const updateContent = (e) => this.updateContent(e);
// 지속 시간 변경을 조절하고 싶지 않거나 필요하지 않습니다.
// 항상 변경된 기간을 다음과 같이 표시해야 하므로
// 변경되었습니다
this.on(player, 'durationchange', updateContent);
// 새 미디어 요소가 로드되면 플레이어 지속 시간이 재설정되므로 loadstart를 수신합니다.
// 그러나 사용자 에이전트의 durationchange는 실행되지 않습니다.
// @[사양] 참조{@link https://www.w3.org/TR/2011/WD-html5-20110113/video.html#media-element-load-algorithm}
this.on(player, 'loadstart', updateContent);
// 또한 timeupdate(상위에서) 및 loadedmetadata를 수신합니다.
// 리스너는 종속 응용 프로그램/라이브러리를 손상시킬 수 있습니다. 이것들
// 7.0에서는 제거될 수 있습니다.
this.on(player, 'loadedmetadata', updateContent);
}
/**
* 기본 DOM `className`을 빌드합니다.
*
* @return {문자열}
* 이 개체의 DOM `className`입니다.
*/
buildCSSClass() {
'vjs-기간'을 반환합니다.
}
/**
* 업데이트 기간 시간 표시.
*
* @param {이벤트대상~이벤트} [이벤트]
* 원인이 된 `durationchange`, `timeupdate` 또는 `loadedmetadata` 이벤트
* 호출할 함수입니다.
*
* @listens Player#durationchange
* @listens Player#timeupdate
* @listens Player#loadedmetadata
*/
업데이트 콘텐츠(이벤트) {
지속 시간 = this.player_.duration();
this.updateTextNode_(기간);
}
}
/**
* 스크린 리더 사용자를 위해 `DurationDisplay`에 추가되는 텍스트입니다.
*
* @유형 {문자열}
* @사적인
*/
DurationDisplay.prototype.labelText_ = '기간';
/**
* `DurationDisplay` 컨트롤 위에 표시되어야 하는 텍스트입니다. 현지화를 위해 추가되었습니다.
*
* @유형 {문자열}
* @사적인
*
* @v7에서는 더 이상 사용되지 않습니다. controlText_는 비활성 디스플레이 구성 요소에서 사용되지 않습니다.
*/
DurationDisplay.prototype.controlText_ = '기간';
Component.registerComponent('DurationDisplay', DurationDisplay);
기본 DurationDisplay 내보내기;