/**
* @file text-track-list.js
*/
'./track-list'에서 TrackList 가져오기;
/**
* 미디어 파일에 대한 {@link TextTrack}의 현재 목록입니다.
*
* @see [사양]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}
* @extends 트랙리스트
*/
클래스 TextTrackList 확장 TrackList {
/**
* `TextTrackList`에 {@link TextTrack} 추가
*
* @param {TextTrack} 트랙
* 목록에 추가할 텍스트 트랙.
*
* @fires 트랙리스트#addtrack
*/
addTrack(트랙) {
super.addTrack(트랙);
if (!this.queueChange_) {
this.queueChange_ = () => this.queueTrigger('변경');
}
if (!this.triggerSelectedlanguagechange) {
this.triggerSelectedlanguagechange_ = () => this.trigger('선택된 언어 변경');
}
/**
* @listens TextTrack#modechange
* @fires 트랙리스트#변경
*/
track.addEventListener('modechange', this.queueChange_);
const nonLanguageTextTrackKind = ['메타데이터', '챕터'];
if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {
track.addEventListener('modechange', this.triggerSelectedlanguagechange_);
}
}
removeTrack(rtrack) {
super.removeTrack(rtrack);
// 추가한 이벤트 핸들러를 수동으로 제거합니다.
if (rtrack.removeEventListener) {
if (this.queueChange_) {
rtrack.removeEventListener('modechange', this.queueChange_);
}
if (this.selectedlanguagechange_) {
rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);
}
}
}
}
기본 TextTrackList 내보내기;