/**
* @file html-track-element.js
*/
'../event-target'에서 EventTarget 가져오기;
'../tracks/text-track'에서 TextTrack 가져오기;
/**
* @memberof HTMLTrackElement
* @typedef {HTMLTrackElement~ReadyState}
* @enum {숫자}
*/
상수 없음 = 0;
const 로딩 = 1;
const 로드됨 = 2;
상수 오류 = 3;
/**
* DOM에 표시되는 단일 트랙.
*
* @see [사양]{@링크 https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}
* @extends 이벤트 타겟
*/
클래스 HTMLTrackElement 확장 EventTarget {
/**
* 이 클래스의 인스턴스를 만듭니다.
*
* @param {객체} 옵션={}
* 옵션 이름 및 값의 개체
*
* @param {기술} options.tech
* 이 HTMLTrackElement를 소유하는 기술에 대한 참조입니다.
*
* @param {TextTrack~Kind} [options.kind='자막']
* 유효한 텍스트 트랙 종류입니다.
*
* @param {TextTrack~Mode} [options.mode='비활성화됨']
* 유효한 텍스트 트랙 모드.
*
* @param {string} [options.id='vjs_track_' + Guid.newGUID()]
* 이 TextTrack의 고유 ID입니다.
*
* @param {문자열} [옵션.라벨='']
* 이 트랙의 메뉴 레이블입니다.
*
* @param {문자열} [옵션.언어='']
* 유효한 두 문자 언어 코드입니다.
*
* @param {문자열} [options.srclang='']
* 유효한 두 문자 언어 코드입니다. 대안이지만 우선 순위가 낮음
* `options.language` 버전
*
* @param {문자열} [옵션.src]
* TextTrack 큐에 대한 URL.
*
* @param {부울} [옵션.기본값]
* 이 트랙이 기본적으로 켜짐 또는 꺼짐인지 여부.
*/
생성자(옵션 = {}) {
감독자();
let readyState;
const track = new TextTrack(옵션);
this.kind = track.kind;
this.src = 트랙.src;
this.srclang = 트랙.언어;
this.label = 트랙.라벨;
this.default = 트랙.디폴트;
Object.defineProperties(이것, {
/**
* @memberof HTMLTrackElement
* @member {HTMLTrackElement~ReadyState} readyState
* 트랙 요소의 현재 준비 상태.
* @사례
*/
준비 상태: {
얻다() {
readyState 반환;
}
},
/**
* @memberof HTMLTrackElement
* @member {TextTrack} 트랙
* 기본 TextTrack 개체입니다.
* @사례
*
*/
길: {
얻다() {
리턴 트랙;
}
}
});
readyState = 없음;
/**
* @listens TextTrack#loadeddata
* @fires HTMLTrackElement#load
*/
track.addEventListener('loadeddata', () => {
readyState = 로드됨;
this.trigger({
유형: '로드',
대상: 이
});
});
}
}
HTMLTrackElement.prototype.allowedEvents_ = {
로드: '로드'
};
HTMLTrackElement.NONE = 없음;
HTMLTrackElement.LOADING = 로드 중;
HTMLTrackElement.LOADED = 로드됨;
HTMLTrackElement.ERROR = 오류;
기본 HTMLTrackElement 내보내기;